Превращаем ячейку DBGrid в ComboBox

Многие разработчики привыкли к тому, что стандартный DBGrid позволяет осуществлять только простое редактирование текста ячейки. Однако на самом деле его возможности этим не исчерпываются.

Рассмотрим подробнее как превратить обычную ячейку DBGrid в настоящий выпадающий список или ComboBox.

Для того чтобы добавить в ячейку раскрывающийся список нужно воспользоваться свойством PickList колонки DBGrid. Это свойство хранит массив строк в формате TStrings, которые и будут впоследствии использованы для построения списка.

Ниже показан пример заполнения PickList:

В результате вторая по счёту колонка будет состоять из ячеек раскрывающихся списков.

При желании также можно без особого труда реализовать заполнение PickList из базы данных.

Однако реализация подобного функционала при помощи стандартного DBGrid не лишена недостатков.

  • Элементы списка не добавляются автоматически на основе связей между таблицами базы данных. Всё необходимо делать вручную в коде программы;
  • При одновременном добавлении или редактировании данных в нескольких связанных таблицах автоматически не обновляются значения внешних ключей. Что также существенно усложняет работу программы. Значение ключа не обходимо получать из базы данных с помощью запроса на основе выбранного элемента списка и только после этого добавлять или изменять его в подчинённой таблице.

Всё это одна из причин, вследствие которых добавление и редактирование данных при помощи стандартного DBGrid считается не желательным.

Поэтому при работе с данными сложной структуры многие программисты стараются его всё-таки избегать, используя более функциональные сторонние компоненты либо отдельную форму или область на текущей форме специально для этих целей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *