Работа с визуальным компонентом TDBGrid и настройка полей таблиц

Основные совйства:

property Columns: TDBGridColumns; - описывает отдельные столбцы таблицы

property SelectedIndex: Integer; - задает номер текущего столбца

property SelectedField: TField; - указывает на объект типа TField, который будет соответствовать текущему столбцу таблицы.

property FieldCount: Integer; - доступно во время выполнения программы и содержит число видимых столбцов таблицы.

property Fields[Index: Integer]: TField; - позволяет получить доступ к отдельным столбцам, где индекс определяет номер столбца в массиве и принимает значение в интервале от 0 до FieldCount-1.

property Color и property FixedColor: TColor; - задают цвет сетки и ее фиксированных элементов.

property TitleFont: TFont; - определяет шрифт, использующийся для вывода заголовков столбцов.

Доступ к параметрам таблицы возможен через свойство Options: TGridOptions. Оно представляется в виде множества и по умолчанию оно содержит следующую комбинацию значений:

[dgEditing, dgTitles, dgIndicator – выводится указатель в начало строки текущей записи, dgColumnResize – разрешается с помощью мыши менять размеры столбцов, dgTabs – позволяет использовать клавиши Tab и Shift+Tab для перемещения.

При щелчке на заголовке и на ячейке генерируется событие onTitleClick и onSetClick, которые имеют тип TDBGridEvent и описываются следующим образом:

type TDBGridClickEvent=procedure(Column: TColumn) of Object;

Column – представляет собой столбец, по которому был произведен щелчок. Для работы с событиями предания/потери фокуса ввода понадобятся OnColEnter и OnColExit: TNotifyEvent.

Для настройки необходимо из вспомогательного, дополнительного контекстного меню компонента TTable обратиться к команде FieldsEditor, где из меню редактора выбрать команду AddFields. В ответ будет предложен список всех полей выбранной таблицы. Далее подтвердить или отменить выбор. После выбора полей в окне AddFields список полей перенести в окно FieldsEditor. Для работы с полями компонента DBGrid необходимо вызвать команду ColumnsEditor, которая вызывается из контекстного меню. Для определения характеристик столбцов в инспекторе объектов можно:

1. Определить характеристики заголовков столбцов: шрифт, цвет, название, через свойства: caption, font, color. Работа с заголовком проходит под разделом Title.

2. Определить характеристики полей. Для определения понадобятся аналогичные свойства, что и при настройке заголовка, кроме свойства caption.

3. Сортировка записей в TDBGrid. Для изменения сортировки записей в наборе данных Table, необходимо использовать свойство TableIndex компонента TTable и выбрать нужные столбцы для изменения сортировки.

Для создания объектов столбцов используется редактор ColumnEditor, который открывается с помощью вспомогательного меню визуального компонента Grid или через свойство Columns в окне инспектора объектов. Редактор создает статические столбцы. И, если хотя бы один из столбцов является статическим, то динамические столбцы не создаются. По умолчанию для каждого поля набора данных, связанного с TBDGrid автоматически создается один столбец и все столбцы в таблице будут доступны. Окно редактора столбцов содержит элементы управления в виде статических кнопок: добавить Add, добавить все столбцы из набора данных AddAll, удалить Delete. Порядок следования столбцов в визуальном компоненте определяется установкой значения FieldName. После связывания столбца и поля, настраивается свойство Title, отвечающее за заголовок и свойство Field. Если для таблицы не создавались компоненты TField, то характеристики и порядок следования определяется структурой записи в момент создания таблицы.

TDBGrid и его динамические свойства. Свойства столбца, внесенные в процессе изменения немедленно отображаются в TDBGrid. Пример. Динамическое определение свойств столбца.

procedure TForm1.Button2Click(Sender: TObject)

begin

DBGrid1.Columns.Clear;

DBGrid1.Columns.Add;

DBGrid1.Columns[0].FieldName:=’Fam_Z’;

DBGrid1.Columns[0].Title.Caption:=’Фамилия’;

DBGrid1.Columns.Add;

DBGrid1.Columns[1].FieldName:=’Kod’;

….