Просмотр базы данных. Режим формы.
Следует обратить внимание на свойство visibieButtons. Оно позволяет скрыть некоторые кнопки компонента DBNavigator и тем самым запретить выполнение соответствующих операций над файлом данных. Например, присвоив значение False свойству VisibieButtons.nbDelete можно скрыть кнопку nbDelete и тем самым запретить удаление записей.
На рис. 17.12 приведен вид формы приложения Архитектурные памятники Санкт-Петербурга после добавления компонента DBNavigator. Свойству DataSource компонента DBNavigator1 следует присвоить значение Table1.
Рис. 17.12. Окончательный вид формы приложения Архитектурные памятники Санкт-Петербурга
В принципе, после добавления в форму компонента DBNavigator простейшая программа управления базой данных готова. Эта программа обеспечивает просмотр, редактирование, добавление новых и удаление ненужных записей.
Теперь рассмотрим, что надо сделать, чтобы в поле imagei появилось изображение памятника, информация о котором выведена в форме. Разрабатываемое приложение предполагает, что изображения (фотографии) архитектурных памятников находятся в файлах в том же каталоге, что и таблица базы данных. Во время добавления информации в базу данных пользователь вводит в поле Photo имя файла фотографии, а во время просмотра фотография автоматически появляется в поле image 1.
В листинге 17.1 приведен текст модуля программы Архитектурные памятники Санкт-Петербурга.
Листинг 17.1. База данных "Архитектурные памятники Санкт-Петербурга".
unit peter_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCTRLs, StdCTRLs, DBCTRLs, Mask, Db, DBTables, jpeg; // чтобы можно было выводить JPG-иллюстрации; type TForml = class (TForm) Tablel: TTable;. // база данных – таблица DataSourcel: TDataSource; // источник данных для полей // редактирования-просмотра Label1: TLabel; Label2: TLabel; Label3: TLabel; DBEditl: TDBEdit; DBEdit2: TDBEdit; DBMemo1: TDBMemo; Image1: ТImage; DBEdit3: TDBEdit; DBNavigatorl: TDBNavigator; Label4: TLabel; procedure TablelAfterScroll(DataSet: TDataSet); procedure DBEdit3KeyPress(Sender: TObject; var Key: Char); procedure DBNavigatorlClick(Sender: TObject; Button: TNavigateBtn) procedure TablelBeforeOpen(DataSet: TDataSet); private { Private declarations } public { Public declarations } end;