По умолчанию для каждого физического поля при открытии набора данных автоматически создается объект типа TField, а все поля в наборе данных являются динамическими и доступными для создания статических (устойчивых) полей используется специальный Редактор полей. В случае, если хотя бы одно поле набора данных является статическим, динамические поля больше создаваться не будут. Таким образом, в наборе данных будут доступны только статические поля, а все остальные считаться отсутствующими. Определить или отменить состав статических полей можно с помощью Редактора полей на этапе разработки приложения.
Во время выполнения приложения определить вид полей набора данных можно с помощью свойства DefaultFields типа Boolean. Если его значение равно True, то набор данных имеет поля по умолчанию, т. е. динамические, в противном случае для набора данных заданы статические поля.
Для запуска Редактора полей следует дважды щелкнуть на компоненте Table или Query или вызвать правой кнопкой мыши для этих компонентов контекстное меню и выбрать пункт Fields Editor.... Большую часть Редактора занимает список статических полей, при этом поля перечисляются в порядке их создания, который может отличаться от порядка полей в таблице БД.
Первоначально список статических полей пуст, указывая, что все поля набора данных являются динамическими. С помощью Редактора полей разработчик может выполнить следующие операции:
1. создать новое статическое поле;
2. удалить статическое поле;
3. изменить порядок следования статических полей.
Кроме того, для любого выбранного в редакторе статического поля с помощью Инспектора объектов возможно задание или изменение свойств этого поля (объекта типа TField) и определение обработчиков его событий. Подобные действия разрешается производить благодаря тому, что соответствующие статическим полям объекты типа TField доступны на этапе разработки приложения.
Для создания статического поля следует вызвать контекстное меню Редактора полей и выбрать пункт Add Fields (Добавить поля), в результате чего появляется диалоговое окно добавления новых полей. В списке Available fields (Доступные поля) окна содержатся все те поля набора данных, которые еще не являются статическими. После выбора одного или нескольких полей и нажатия кнопки ОК эти поля добавляются в состав статических полей набора данных. Добавленное статическое поле является полем данных и связано с конкретным физическим полем таблицы БД. Для добавления в список всех физических полей таблицы (для набора данных Table) или результата выполнения SQL-запроса (для набора данных Query) нужно выбрать в контекстном меню Редактора полей пункт Add all Fields (Добавить все поля).
Для удаления статического поля нужно выбрать пункт Delete контекстного меню или выделить в списке поле и нажать клавишу . После удаления статического поля оно становится недоступным для операций в программе, однако в случае необходимости его снова можно сделать статическим, добавив в список Редактора полей. При этом следует иметь в виду, что все свойства этого поля устанавливаются заново, а все сделанные ранее изменения теряются.
Существует три типа статических полей:
1. поле данных, связанное с соответствующим физическим полем таблицы;
2. вычисляемое поле, значение которого рассчитывается в обработчике события onCalcFields во время выполнения приложения;
3. поле выбора, значение которого можно выбирать из списка, формируемого на основе заданных критериев и правил.
Для создания нового статического поля любого типа нужно выбрать в контекстном меню Редактора полей пункт New Field..., в результате чего открывается одноименное диалоговое окно.
Для задания общих свойств (параметров) нового поля используется группа управляющих элементов Field properties (Свойства поля). В строке Name задается значение свойства FieldName, являющееся именем поля, а в строке Component — значение свойства Name, являющееся названием компонента (объекта типа TField) поля. При программировании обычно используется имя поля. Значение в строке Component формируется Delphi автоматически, и попытка изменить его не приводит к желаемому результату. В панелях Туре и Size указываются тип данных и размер поля. Тип данных обязательно задается для всех полей, а необходимость задания размера зависит от типа данных. Например, для поля с типом данных integer задание размера не имеет смысла, а для типа string размер поля ограничивает максимальную длину строки.
Тип нового поля выбирается с помощью группы переключателей Field type из следующих вариантов:
1. Data — поле данных;
2. Calculated — вычисляемое поле;
3. Lookup — поле выбора.
В группе Lookup definition (Определение выбора) для поля выбора устанавливаются такие параметры, как набор данных и поля связи, а также поля для формирования списка выбора и результата.
После создания нового статического поля его свойства становятся доступными через Инспектор объектов и могут быть изменены.