Справочник по компонентам Delphi. Часть 3 - Компонент TField
ОГЛАВЛЕНИЕ
Компонент TField
TObject -> 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; | Идентифицирует набор данных поля. |
property DataSize: Word; | Содержит число байт, необходимое для размещения компонента в памяти. |
property DataType: TFieldType; TFieldType = (ft Unknown, ftString, ftSmallint, ftlnteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftBlob, ftMemo, ftGraphic) ; | Определяет тип данных поля. |
property DisplayLabel: String; | Содержит заголовок поля, используемый компонентом TDBGrid. |
(Ro) property DisplayName: PString; | Содержит имя поля. Используется аналогично свойствам DisplayLabel или FieldName других компонентов. |
property DisplayText: String; | Содержит символьное представление значения поля, используемое визуальными компонентами в состоянии Edit. |
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. |