Этот класс описывает поле, его тип и т.п. Думаю, лучше каждое свойство рассмотреть.
Это свойство содержит аттрибуты данного поля. Это множество, состоящее из значений faHiddenCol, faReadonly, faRequired, faLink, faUnNamed, faFixed. Вот что они значат:
Это свойство и с ним связанные относятся не ко всем разновидностям (потомкам) класса TFieldDef, а только к производным TObjectField, например TADTField.
Определяет вложенные определения полей - дочерние поля. Это указатель на объект класса TFiledDefs. Для добавления вложеннных полей используется метод AddChild(void), возвращающий указатель на объект TFieldDef. Свойство ParentDef содержит указатель на родительское поле. Взаимосвязь - fDef = fDef->AddChild()->ParentDef. Метод HasChildDefs(void) возвращает, есть ли у данного поля вложенные.
Это свойство определяет реальный тип физического поля (того, которое записано в таблице или выдается по SQL запросу). Разные специализированные потомки TFieldDef автоматически проставляют значение этого свойсва. Пользователи, впрямую работающему с TFieldDef, приходится вручную устанавливать его значение.
Определяет метакласс поля, основываясь на значении DataType. Возвращается значение, к которому можно приравнять с помощью оператора __classid, например, fDef->DataType = ftInteger; fDef->FieldClass==__classid(TIntegerField);
Есть понятие RequestLive запроса, то есть запроса, который выдает динамически просчитываемые данные. Например, как в часто бывает на практике, есть поле ЦЕНА и поле КОЛИЧЕСТВО. Какое-либо поле типа ИТОГ не должно быть ведено отдельно и вводится отдельно. Это источник ошибок и вообще нерациональный метод ведения базы. Для этого есть запросы, например
SELECT ЦЕНА, КОЛИЧЕСТВО (ЦЕНА*КОЛИЧЕСТВО) FROM DATA
Вот третье поле-то и будет ИТОГ. InternalCalcField как раз и определяет, является ли поле динамическим или нет. Это read-only property, его значение менять нельзя.
Своство Required определяет, обязательно ли поле должно иметь значение вообще. Свойство Size дает возможность установить или считать размер для поля. Тип поля должен быть следующий: ftString, ftBCD, ftBytes, ftVarBytes, ftBlob, ftMemo или ftGraphic.
Определяет указатель на содержащий данный объект (this) объект-список, коллекцию, производный абстрактного класса TCollection.
Это наиболее значимые свойства данного класса. Надо отметить, что обычно вместо этого класса используются более специализированные, например TADTFiled, TGraphicField, TStringField. Но основные свойства у них эти.