![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Основные методы виртуального поля записи
Clear ‑ очистить поле (сделать пустым). FocusControl ‑ перемещение фокуса на значение поля. IsValidChar(С: Char): Boolean ‑ символ C допустим для поля (True). Доступ к полю реализуется свойством Fields[< номер поля> ] и методами таблицы FieldByName(‘< имя поля> ’), FindField(‘< имя поля> ’). Доступ к значению поля реализуется свойствами полей Value и As< тип> и свойством таблицы FieldValues: Value ‑ представляет значение поля. При доступе к физическому полю преобразование к типу результата выполняется автоматически, если это возможно, в отличие от постоянного поля ‑ пользователь обязан указать тип результата, равный типу поля. Примеры доступа к динамическим и постоянным полям таблицы: Label1.Caption: =Datamodule2.Stroiki.FieldByName('Ns').Value; //значение Ns Label1.Caption: =Datamodule2.Stroiki.FindField('Ns').Value; //значение Ns Label1.Caption: =Datamodule2.StroikiNs.Value; //постоянное поле StroikiNs Label1.Caption: =Datamodule2.StroikiKz.Value; //ошибка: Кz‑ число(не строка) As< тип> ‑ представляется значение поля с преобразованием этого значения к указанному типу: Variant, String, Integer (Longint), Float (Double), Currency, Boolean, DateTime. Примеры: Label1.Caption: =Datamodule2.StroikiKz.AsString; //Kz переводится в строку Datamodule2.Stroiki.Fields[0].AsString: =Edit1.Text; //название стройки DataModule2.Stroiki.FindField(‘Ss’).AsCurrency: =100000; //смета стройки FieldValues[‘< имя поля> ’] ‑ доступ к значению поля под указанным именем Пример: DataModule2.Zakazhiki.FieldValues['Nz']: ='Уралмаш'; //заказ. Запретить корректировкуили скрытьполе можно свойствами ReadOnly, Visisble (Datamodule2.Stroiki.FieldByName('Ns').Visisble: =True). Проверка типа поля реализуется свойством поля DataType типа TFieldType: ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftDate, ftTime, ftDateTime, ftBytes, ftAutoInc, ftBlod, ftGraphic и др. Контроль значения поля реализуется свойствами поля: MinValue (минимум), MaxValue (максимум), CustomConstraint (текст условия), ConstraintErrorMessage (текст сообщения об ошибке). Пример: With Datamodule2.Stroiki Begin...//присоединение имени модуля и таблицы FieldByName('Kz').CustomConstraint: ='Kz> =0 and Kz< =9'; //условие FieldByName('Kz').ConstraintErrorMessage: ='Ошибка'; //текст сообщения FieldByName('Kz').DefaultExpression: ='0'; //значение по умолчанию Для более сложного контроля можно использовать обработчики событий для поля в порядке их генерации: OnSetText (генерируется только при вводе до изменения значения поля), OnValidate, OnChange. Последние два события генерируются после окончания ввода или присвоения значения программным путем. В обработчике OnSetText второй аргумент содержит новое значение, которое можно проверить, и если оно правильное, то присвоить это значение полю. Пример обработчика события OnValidate для поля Kz: Procedure TDataModule2.StroikiKzValidate(Sender: TField); Begin If Datamodule2.Stroiki.FieldByName('Kz').Value > 10 Then Begin ShowMessage ('Ошибка! Код заказчика вне диапазона [1, 10]'); Datamodule2.Stroiki.Cancel; End Else Datamodule2.Stroiki.Post; End;
|