Компонент Delphi DBGrid – это визуальный компонент среды Delphi, предназначен для визуализации наборов данных. Этот компонент находиться на странице компонентов DataControls палитры компонентов. Класс TDBCustomGrid и класс TCustomGrid – это родительские классы компонента DBGrid. Компонент делиться на столбцы (поля ввода данных) и строки (записи).
Свойства DBGrid
Свойства | Описание |
DataSource | В этом свойстве указывают имя компонента DataSource для связи БД с компонентом DBGrid |
Columns | Хранит в себе коллекцию состоящих из столбцов таблицы. Позволяет для каждого столбца применить индивидуальные свойства, например цвет. |
Options | Определяет параметры отображения таблицы:
|
ReadOnly | Задает параметр разрешающий или запрещающий пользователю редактировать данные в таблице |
TitleFont | Задает шрифт, выводимых заголовков столбцов таблицы |
FixedColor | Задает цвет неподвижных ячеек таблицы |
Работа со столбцами
Над значениями столбцов можно проводить различные операции: скрывать или показывать поля, менять положение, добавлять новые столбцы. Редактор столбцов предназначен для изменения набора полей. Вызывается редактор двойным щелчком мыши(рис 1). Он имеет четыре свойства (Add New, Delete Selected, Add All Fields, Restore Defaults). Соответственно: добавить новый столбец, удалить выделенный, добавить все столбцы из полей ввода данных, восстановление значения для выделенного столбца (по умолчанию). Свойства для каждого из выбранных столбцов появляются в Object Inspector. Со столбцами можно проводить такие операции:
- редактирование;
- удаление;
- смена местами двух столбцов;
- изменять заголовок столбцов (свойство Title).
Свойства Colums
Alignment | Отвечает за выравнивание данных в колонке |
ColumnButtonStyle | Отвечает за способ редактирования данных:
|
Color | Цвет фона колонки |
DropDownRows | Определяет число строк списка ячейки |
Expanded | Если True то каждое дочернее поле будет отображатся в новой колонке. Иначе дочерние поля будут показаны через точку с запятой |
FieldName | Название поля |
Font | Шрифт в колонке |
PickList | Содержит выпадающий список доступный при редактировании |
PopupMenu | Связывает с всплывающим меню |
Title | Текст заголовка и параметры |
Visible | Видимость колонки |
Width | Ширина колонки в пикселах |
При необходимости создания дополнительного пустого столбца в редакторе столбцов таблицы DBGrid необходимо воспользоваться свойством FieldName (поле базы данных оставить пустым). В пустые столбцы можно перемещать уже обработанные данные из других столбцов.
Работа со строками
Как при работе со столбцами, так и при работе со строками можно изменять цвет ячеек – это очень удобно при работе с большим количеством данных, ведь всегда можно выделить отдельные столбцы или строки различными цветами для обозначения той или иной категории. Свойство DefaultDrawing – значение, которое влияет на способ прорисовки данных в компоненте DBGrid (по умолчанию свойство равно True, в этом случае данные прорисовываются автоматически). Если значение DefaultDrawing равно False, прорисовку нужно делать самостоятельно при помощи OnDrawColumnCell. Другой вариант, пользователь прописал алгоритм прорисовки, но значение свойства остается равно True, тогда DBGrid заполнится сначала автоматически, а лишь потом будет выполнен алгоритм пользователя (то есть прорисовка выполняется дважды, это сказывается на быстродействии программы, но теперь пользователю не придется заполнять все пустые ячейки вручную).
Если до компонента DBGrid вам приходилось работать с компонентом Delphi StringGrid, то вам уже будет намного легче, ведь принцип работы этих двух компонент очень похож, только к дополнению свойств StringGrid, DBGrid имеет свои собственные свойства. Ячейки – это основные структурные единицы таблицы. Свойство State – состояние таблицы (gdSelected – выделена, gdSelected – имеет фокус ввода, gdFixed – ячейка-заглавие столбца).
Что надо знать о DBGrid:
- это таблица для отображения данных из БД (база данных);
- используется при работе с БД;
- это потомок класса TDBCustomGrid и класса TCustomGrid;
- находиться на странице DataControl.