Работа с объектами, аналогичными ListBox

По описанию объект ListBox имеет средства работы с базами данных, но, как и в случае ComboBox, следует применять объект DBList. Во время проектирования формы и работы приложения этот объект похож на ListBox, но в отличие от последнего очень легко связывается с базой данных посредством элемента типа Data. Важнейшие свойства DBList для работы с таблицей данных такие же, как у DBCombo.

6.3.3. Применение объектов FlexGrid и DBGrid
для работы с базами данных

Указанные объекты являются таблицами и удобны для отображения баз данных на экране. Общие принципы работы с объектом FlexGrid описаны в главе 4. Этот объект может отображать таблицу данных и позволяет выбрать нужную запись, и даже ее компонент (поле). Дополнить и изменить базу данных FlexGrid не позволяет. Число строк и столбцов, а также ширина столбцов определяются автоматически.

При желании можно задать желаемую ширину столбцов. Для этого на стадии проектирования формы необходимо в свойстве Cols указать число столбцов таблицы (можно с запасом), а на стадии создания таблицы FlexGrid (например, в методе Form_Load) – определить ширину столбцов ColWidth.

Для работы с таблицей данных FlexGrid имеет свойство DataSource, определяющее объект типа Data, связанный с нужной таблицей. Задание этого свойства обеспечивает автоматическое заполнение таблицы FlexGrid содержимым выбранной таблицы данных. Организовать ввод данных во FlexGrid можно так, как описано в главе 4, но следует помнить, что база данных от этого не изменится. Номер выбранной записи окажется в свойстве Col, значения выбранных данных – в свойстве TextMatrix.

Рис. 6.6. Объект DBGrid Объект DBGrid (рис. 6.6) похож на FlexGrid, но позволяет изменить содержимое базы данных, причем устанавливать связь буфера клавиатуры с ячейкой таблицы не нужно, т.е. ввод данных с клавиатуры обеспечен автоматически. Дополнительно DBGrid позволяет изменять ширину столбцов во

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

Для заполнения таблицы DBGrid данными достаточно указать свойство DataSource. Важнейшими свойствами объекта являются:

  • Caption – заголовок (добавляет к таблице строку заголовка)
  • ColumnHeaders – разрешение отображать заголовки столбцов (названия полей),
  • AllowAddNew – разрешение/запрещение интерактивного добавления записей,
  • AllowArrows – разрешение/запрещение навигации по таблице клавишами "стрелки",
  • AllowDelete – разрешение/запрещение интреактивного удаления записей,
  • AllowUpdate – разрешение/запрещение обновления записей.

Установка AllowAddNew=True приводит к появлению в конце таблицы пустой строки. При заполнении этой строки хотя бы одной буквой появляется новая пустая строка. Для удаления выбранной записи достаточно нажать клавишу Del[15]. Для реализации возможности обновления таблицы данных проще всего ввести командную кнопку "Обновить", а в ее обработчике события Click достаточно поместить команду Имя_объекта_Data.Refresh, например, Data2.Refresh.

Для чтения данных из ячейки DBGrid необходимо определить ячейку, указав свойства Row и Col. Данные из выбранной клетки записываются в свойство SelText. Нумерация строк и столбцов начинается с нуля.

Объекты FlexGrid и DBGrid позволяют так же, как и объект DBCombo, сделать невидимым управляющий объект Data. В случае необходимости его показа на форме управлять его свойством Caption можно более простыми выражениями:

Data.Caption=str(FlexGrid.Row)
или
Data.Caption=str(DBGrid.Row),

где Data, FlexGrid и DBGrid – имена объектов, записанным в обработчик событий RowColChange.