Страница 27 из 42 Компонент TFieldTObject->TPersistent->TComponent-”TField Модуль DB В Палитре компонентов отсутствует Предназначен для работы с полями таблиц баз данных. Отсутствует в Палитре компонентов, так как является абстрактным компонентом и выступает предком для ряда типизированных компонентов (см. рис. 4.17), которые наследуют все базовые свойства и методы для работы с полями. Объекты-наследники автоматически создаются для каждого используемого приложением поля при выполнении приложения. Эти компоненты создаются динамически в случае определения значения True для свойства Active компонентов TTable и TQuery. Компонент TField играет важную роль для приложений, работающих с базами данных, так как предоставляет возможность прямого доступа к полям таблиц. Каждый компонент содержит не только сведения о типе данных, наборе значений и т. п., но и предоставляет информацию, которая используется визуальными компонентами отображения данных. В процессе разработки работа с компонентами TField осуществляется при помощи Редактора полей. Свойства компонента ^Ъ) property Alignment: TAlignment; | Содержит способ выравнивания (см. главы 1, 2) компонента и используется визуальными компонентами TDBGrid и TDBEdit. | property AsBoolean: Boolean- | Содержит значение для TBooleanField. Для TStringField возвращает True, если поле начинается с символов Y,y,T,t (Yes, yes, True, true). | property AsDateTime: TDataTime; | Содержит значение для TDateTimeField или TTimeField. Для TStringField проводит конвертацию. | property AsFloat: Double; | Содержит значение для TFloatField, TBCDField, TCurrencyField. Для TStringField проводит конвертацию. | property Aslnteger: Longing- | Содержит значение для TIntegerField, TSmallintField, TWordField. Для TStringField проводит конвертацию. | property AsString: String; | Содержит значение для TStringField. Для TBCDField, TFloatField, TCurrencyField, TDateTimeField, TTimeField, TIntegerField, TSmallintField, TWordField проводит конвертацию. Для TBooleanField возвращает True, если текст начинается с символов Y,y,T,t. Для TMemoField, TGraphicField, TBIobField, TBytesField, TVarBytesField используется только для чтения и возвращает строки "Memo", "Graphic", "Blob", "Bytes", "VarBytes". | (Pb) property Calculated: Boolean; | Содержит True, если поле вычисляемое. | (Ro) property CariModify: Boolean; | Определяет возможность изменения характеристик поля. | property DataSet: TDataSet; | Идентифицирует набор данных поля. | 60) property DataSize: Word; | Содержит число байт, необходимое для размещения компонента в памяти. | Q property DataType: TFieldType; TFieldType = (ft Unknown, ftString, ftSmallint, ftlnteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftBlob, ftMemo, ftGraphic) ; | Определяет тип данных поля. | 1рЬ) property DisplayLabel: String; | Содержит заголовок поля, используемый компонентом TDBGrid. | Ro) property DisplayName: PString; | Содержит имя поля. Используется аналогично свойствам DisplayLabel или FieldName других компонентов. | ^o) property DisplayText: String; | Содержит символьное представление значения поля, используемое визуальными компонентами в состоянии Edit. | ^b) property DisplayWidth: Integer; | Отражает ширину в символах поля, используемого компонентом TDBGrid. | property EditMask: String; | Служит для создания шаблона, ограничивающего данные, выводимые в поле. Маска состоит из трех секции, разделяемых точкой с запятой. Первая содержит тело маски. Вторая содержит символ, определяющий, будут ли буквенные символы маски сохраняться как часть данных (0 — не сохраняются, 1 — сохраняются). Третья содержит символ, определяющий пробел для маски. | (Ro) property EditMaskPtr: PString; | Является указателем на строку свойства EditMask. | (Pb) property FieldName: String; | Содержит имя, которое поле имеет в таблице базы данных. | (Re) property FieldNo: Integer; | Порядковый номер компонента в наборе данных. | (Pk) property Index: Integer; | Номер компонента в массиве свойства Fields набора данных. Изменение значения этого свойства приводит к изменению расположения поля в наборе данных. | (Ro) property IsIndexField: Boolean; | В состоянии True означает, что поле индексировано. | (Ro) property IsNull: Boolean; | Находится в состоянии True, если текущее поле пустое. | (Pb) property Readonly: Boolean; | Определяет режим редактирования текущего поля. Значение True определяет режим "Только для чтения". | (№) property Required: Boolean; | В значении True означает, что поле обязательно должно быть не пустым. | property Size: Word; | Определяет размер поля, размещаемого в наборе данных. | property Text: String; | Содержит символьное представление значения текущего поля в режиме Edit, используется визуальными компонентами отображения данных. | (Pb) property Visible: Boolean; | Определяет режим отображения компонента. | Обработчики событий (Pb) property OnChange: TFieldNotifyEvent ; TFieldNotifyEvent = procedure(Sender: TField! of object; | Реагирует на изменение значений полей компонента. Если поле связано с визуальным компонентом отображения данных, то обработчик вызывается только при попытке изменить текущую запись. | (Pb) property OnGetText: TFieldGetTextEvent ; TFieldGetTextEvent = procedure(Sender: TField; var Text: String; DisplayText: Boolean) of object; | Обрабатывает обращение к свойствам DisplayText и Text. Обработчик работает с DisplayText при использовании режима просмотра и Text при режиме редактирования. | (Pb) property OnSetText: TFieldSetTextEvent; TFieldSetTextEvent = procedure(Sender: TField; const Text: String) of object; | Используется при переопределении значения свойства Text. | (Pb) property OnValidate: TFieldNotifyEvent; | Реагирует на редактирование содержимого компонента. Обработчик вызывается для визуальных компонентов отображения данных только при попытке изменения записи. | Методы компонента procedure Assign(Source: TPersistent); override; | Копирует данные из одного компонента в другой, при этом должны быть корректно определены свойства DataType и Size. Параметр Source определяет поле — источник данных. Свойство DataSize источника должно иметь значение не больше 255. | procedure AssignValue(const Value: 'TVarRec) ; | Устанавливает значение поля в соответствие с параметром метода Value, используя для преобразования данных свойства AsBoolean, Aslnteger, AsFloat, AsString, в зависимости от типа данных. | procedure Clear; virtual; | Обнуляет набор значений поля. | procedure FocusControl; | Устанавливает фокус формы на первый связанный с TField компонент отображения данных. | function GetData(Buffer:Pointer): Boolean | Помещает в буфер данные поля без преобразований. Для определения размера буфера можно использовать свойство DataSize. Возвращает False в случае отсутствия данных. | function IsValidChar(InputChar: Char) : Boolean; virtual | Используется для определения корректности символа, введенного в поле, результат зависит от типа данных поля. Применяется компонентами отображения данных. | procedure SetData(Buffer: Pointer); | Записывает в поле данные из буфера без преобразования. Размер буфера определяется свойством DataSize. | |