Работа с объектами, аналогичными 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.
| Объект 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.