Delphi и базы данных. Навороченный пример часть 2:
Я продолжаю улучшать мой пример работы с базой данных. Сегодня в нём тебя ожидает очень много интересного. Примерчик преобразится и станет на много лучше. Сегодня я добавлю в него кардинально новые вещи.
Рис. 1 DataModule.
Прежде всего я добавил в DataModule два компонента - DataSource и ADOTable дава им имена DataSourceТ и ADOTableТ. ADOTableТ я подвязал к нашей базе и указал таблицу "Справочник городов", и сделал её активной. Ну и само собой связал компоненты DataSourceТ и ADOTableТ, чтобы можно было отображать данные содержимого таблицы. На рисунке 1 ты можешь видеть обновлённое окно DataModule.
Второе действие - я создал окно для редактирования содержимого таблицы "Справочник городов". Название окна я не стал менять, так что его имя Form5. Я создал ворму и бросил на неё только лишь один компонент DBGrid, и подвязал его к таблице ADOTableT. Только не забудь подключить к новой форме модуль Unit2, иначе ты не сможешь подвязать. На рисунке 2 показано окно этой формы.
Рис. 2 Новое окно.
После этого я вернулся к главной форме. Добавил одну кнопку на панель инструментов, и по её нажатию написал вызов окна редактирования новой таблицы:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
Form5.ShowModal;
end;
Едем далее. Я создал ещё одно окно, которое буду использовать для редактирования строк в главной таблицы. Его вид показан на рисунке 3. Я не буду расписывать, как я его сделал, потому что ты и так должен догадаться, мы уже не раз такое проделывали. Если что-то неясно, посмотришь в исходнике.
Рис. 3 Окно для редактирования.
Единственное, что я хочу объяснить - это поле для редактирования поля "Город". Для него стоит компонент ТDBLookupComboBox. Я установил у него следующие свойства:
DataSource = DataModule2.DataSource1.
DataField = Город
KeyField = Key1
ListField = Город
ListSource = DataModule2.DataSourceT
Первые два поля указывают на поле "Город" в главной таблицы. Поле ListSource указывает на таблцу "Справочник городов", эта таблица будет использоваться в качестве данных в выпадающем списке. Полем указанном в ListField будет заполнен выпадающий список. Поле указанное в KeyField будет использоватся в качестве связующего. Эти параметры делают следующее. Выпадающий список заполняется данными поля "Город" таблицы "Справочник городов". Когда ты выберешь какое-то поле из выпадающего списка, значение поля указанного в KeyField будет записано в поле указанное в поле DataField.
Вызов этого окна я сделал по двойному щелчку по DBGrid главного окна и по событию AfterInsert главной таблицы. Для создания второго сообщения я выделил компонент ADOTable1 и создал его на закладке Event. Теперь после создания новой строки автоматически будет появлятся созданное мной окно редактирования.