Класс TField
Как уже говорилось выше, в большой иерархии классов для полей различных типов данных класс TField является базовым (см. рис. 13.1), он инкапсулирует свойства и методы абстрактного поля данных. Именно от него происходят все классы типизированных полей. В реальной работе класс TField не используется, но его значение трудно переоценить. Практически все основные свойства классов типизированных полей унаследованы от класса TField без каких-либо изменений, а дополнительные свойства и методы обеспечивают работу конкретного типа данных.
Что касается методов-обработчиков событий, то четыре метода, определенные в классе TField, наследуются всеми потомками без изменения и дополнения.
Ниже приведены свойства и методы класса TField. Имя объекта содержит свойство:
property Name: TComponentName;
При создании объекта поля на этапе разработки имя объекта складывается из имени соответствующего компонента набора данных и имени поля.
Свойство:
property FieldName: String;
…возвращает имя поля таблицы базы данных. Свойство:
property FullName: string;
…используется, если текущее поле является дочерним для другого поля. В этом случае свойство содержит имена всех родительских полей.
Название поля в таблице базы данных содержится в свойстве:
property Origin: String;
Свойство:
property FieldNo: Integer;
…возвращает исходный порядковый номер поля в наборе данных. Если объекты полей являются статическими, их фактический порядок может быть изменен в Редакторе полей.
Свойство:
property Index: Integer;
…содержит индекс объекта поля в списке Fields.
Функциональное назначение поля определяется свойством:
type TFieldKind = (fkData, fkCalculated, fkLookup, fklnternalCalc, fkAggregate); property FieldKind: TFieldKind;
В большинстве случаев его значение определяется автоматически в момент создания объекта поля. Да и впоследствии вряд ли возникнет необходимость сделать реальное поле данных вычисляемым. Обычно попытка изменить значение свойства FieldKind вызывает ошибку. Рассмотрим возможные значения этого свойства:
- fkData – поле данных;
- fkCalculated – вычисляемое поле;
- fkLookup – поле синхронного просмотра;
- fklnternalCalc – внутреннее вычисляемое поле;
- fkAggregate – агрегатное поле.