Справочник по компонентам 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.