Отдельный столбец column сетки представляет собой объект типа TColumn. По умолчанию для каждого поля набора данных, связанного с компонентом DBGrid, автоматически создается отдельный столбец, и все столбцы в сетке доступны. Такие столбцы являются динамическими. Для создания статических столбцов используется специальный Редактор столбцов. Если хотя бы один столбец сетки является статическим, то динамические столбцы уже не создаются ни для одного из оставшихся полей набора данных. Причем в наборе данных доступными являются статические столбцы, а остальные считаются отсутствующими. Изменить состав статических столбцов можно с помощью Редактора столбцов на этапе разработки приложения.
Взаимодействие между динамическими и статическими столбцами, а также Редактором столбцов аналогично взаимодействию между динамическими и статическими полями набора данных и Редактором полей. Характеристики и поведение сетки и ее отдельных столбцов во многом определяются полями набора данных (а также соответствующими объектами типа TField), для которых создаются объекты типа TColumn.
Функционирование динамических столбцов зависит от свойств объекта поля: при изменении свойств объекта типа TField соответственно изменяются свойства объекта типа TColumn. К примеру, динамический столбец получает от поля такие характеристики, как имя и ширину. Достоинством статических столбцов является то, что для их объектов можно установить значения свойств, отличные от свойств соответствующего поля и не зависящие от него. Например, если для некоторого статического столбца установить свое имя, то оно не будет меняться даже в случае, если с этим столбцом связывается другое поле набора данных. Кроме того, объекты типа TColumn статических столбцов создаются на этапе разработки приложения, и их свойства доступны через Инспектор объектов.
Для запуска Редактора столбцов можно вызвать контекстное меню компонента DBGrid и выбрать в нем пункт Columns Editor. Редактор столбцов можно вызвать также щелчком мыши на свойстве columns в окне Инспектора объектов. В заголовке Редактора столбцов выводится составное имя массива столбцов, например, DBGrid1->Columns. Под заголовком находится панель инструментов, видимостью которой можно управлять с помощью пункта Toolbar контекстного меню Редактора столбцов. В Редакторе статические столбцы перечисляются в порядке их создания (он может отличаться от исходного порядка полей в наборе данных).
При изменении порядка столбцов сетки автоматически изменяется порядок связанных с ними полей набора данных, что необходимо учитывать при доступе к полям по номерам объектов типа TField, а не по именам объектов.
Первоначально список статических столбцов пуст, показывая тем самым, что все столбцы сетки являются динамическими. Редактор столбцов позволяет:
- создать статический столбец
- удалить статический столбец
- изменить порядок следования статических столбцов
Кроме того, для любого выбранного в Редакторе статического столбца (объекта типа TColumn) через Инспектор объектов можно задать или изменить его свойства и определить обработчики его событий. Это допустимо потому, что соответствующие статическим столбцам объекты типа TColumn доступны уже на этапе разработки приложения. Статический столбец можно создать следующими способами:
- нажатием кнопки панели инструментов Редактора столбцов
- выбором пункта Add контекстного меню Редактора столбцов
- нажатием клавиши <Insert>
В любом случае к списку добавляется строка, соответствующая новому статическому столбцу. В левой части строки содержится номер этого столбца в массиве столбцов, в правой имя поля набора данных, с которым связан столбец. Сразу после добавления к списку столбец не связан ни с одним полем и вместо имени поля указывается TColumn. При выполнении приложения подобный столбец окажется пустым. Чтобы связать столбец с каким-либо полем, необходимо задать значение его свойству FieldName.
Для добавления в список статических столбцов, соответствующих всем полям набора данных, следует нажать кнопку панели инструментов Редактора столбцов или выбрать в его контекстном меню пункт Add All Fields. Для удаления из списка статических столбцов необходимо их выделить, после чего выполнить одно из следующих действий:
- нажать кнопку панели инструментов Редактора столбцов
- выбрать пункт Delete контекстного меню Редактора столбцов
- нажать клавишу <Delete>.
Вновь создаваемые статические столбцы получают значения свойств по умолчанию, зависящие также от полей набора данных, с которыми эти столбцы связаны.
Если значения свойств были изменены через Инспектор объектов и требуется восстановить их первоначальные значения, то это можно выполнить выбором пункта Restore Defaults (Восстановить параметры по умолчанию) контекстного меню Редактора столбцов. Объект столбца доступен через свойство columns типа TDBGridColumns. При проектировании приложения свойства этого объекта (т.е. столбца, выбранного в списке Редактора столбцов) доступны через Инспектор объектов.
Ниже перечислены наиболее важные свойства объекта столбца.
- Alignment типа TAlignment - управляет выравниванием значений в ячейках столбца и может принимать следующие значения:
- taLeftJustify (выравнивание по левой границе)
- tacenter (выравнивание по центру)
- taRightJustify (выравнивание по правой границе) - Count типа int - указывает число столбцов сетки
- Field типа TField - определяет объект поля набора данных, связанный со столбцом
- FieldName типа AnsiString - указывает имя поля набора данных, с которым связан столбец. При установке этого свойства с помощью Инспектора объектов значение можно выбирать в списке
- PickList типа TStrings - представляет собой список для выбора заносимых в поле значений. Текущая ячейка совместно со списком PickList образуют своего рода компонент ComboBox или DBComboBox. Если для столбца сформирован список выбора, то при попытке редактирования ячейки этого столбца справа появляется стрелка, при нажатии которой список раскрывается и позволяет выбрать одно из значений. При этом можно ввести в ячейку любое допустимое значение
- Title типа TColumnTitie - представляет собой объект заголовка столбца. В свою очередь этот объект имеет такие свойства, как Caption, Alignment, Color и Font, определяющие название, выравнивание, цвет и шрифт заголовка соответственно.
Свойства столбца, управляющие форматированием, видимостью или возможностью модификации значений, не отличаются от соответствующих свойств поля.