- •Проектирование и создание прикладной системы для работы с базой данных
- •Теоретические сведения Методика построения прикладной системы для работы с базой данных
- •Использование методики для выполнения учебного задания
- •Формы, обеспечиваюшие пользовательский интерфейс
- •Свойства пунктов главного и дополнительных меню
- •Свойства компонентов SpeedButton
- •Свойства компонентов, расположенных на форме fmEditflat
- •Значения свойств компонентов Button
- •Значения свойств компонентов, связанных с данными
- •Значения свойств полей для компонента taFlat
- •Значения свойств компонентов Table
- •Значения свойств компонентов DataSource
- •Значения свойств полей для компонента taHave_d
- •Значения общих cвойств визуальных компонентов
- •Лабораторное задание и порядок выполнения работы
- •Требования к отчету
- •Литература
- •Содержание
Свойства компонентов, расположенных на форме fmEditflat
Name |
Caption |
Name | |||||||
Старое |
Новое |
Старое |
Новое | ||||||
Label1 |
laAddress |
Адрес |
DBEdit1 |
deAddress | |||||
Label2 |
laSkv |
Площадь квартиры |
DBEdit2 |
deSkv | |||||
Label3 |
laNrooms |
Число комнат |
DBEdit3 |
deNrooms | |||||
Label4 |
laKCategory |
Категория квартиры |
DBComboBox1 |
dcKCategory | |||||
Label5 |
laKvm |
Кв.м. |
Table1 |
taFLAT | |||||
Button1 |
buExit |
Выход |
DataSource1 |
dsFlat | |||||
Button2 |
buCancel |
Отмена |
DBNavigator1 |
naFLAT | |||||
Name |
DatabaseName |
Table Name |
DataSet |
Data Source |
DataField |
Visible Buttons | |||
taFLAT |
dbTUTOR |
FLAT.DB |
|
|
|
| |||
dsFLAT |
|
|
taFLAT |
|
|
| |||
naFLAT |
|
|
|
dsFLAT |
|
nbFirst, nbPrior, nbNext, nbLast | |||
deAddress |
|
|
|
dsFLAT |
Address |
| |||
deSkv |
|
|
|
dsFLAT |
Skv |
| |||
deNrooms |
|
|
|
dsFLAT |
NRooms |
| |||
dcKCategory |
|
|
|
dsFLAT |
KCategory |
|
Для компонента taFLAT последним устанавливается значение свойства Active=True.
Для кнопки Выход установим значение свойства Default=True, чтобы она реагировала на нажатие клавиши Enter, а для кнопки Отмена - значение свойства Cancel=True, чтобы она реагировала на нажатие клавиши Esc.
Компонент dcKCategory позволяет задавать значение поля (атрибута) KCategory нажатием на клавиатуре клавиш со стрелками или выбором одного из допустимых значений, предусмотренных в списке, который появляется при нажатии на кнопку со стрелкой. Список допустимых значений определяется свойством Items этого компонента. Для создания или проверки списка нужно дважды щелкнуть на свойстве Items, чтобы появилось окно String List Editor, в котором набираются строки, содержащие допустимые значения поля KCategory:
П
Н
К
Форма fmEDITFLAT используется как в режиме ввода, так и в режиме редактирования. Для задания режима необходимо предусмотреть признак Editing, объявив его в разделе public класса TfmEDITFLAT как Editing : Boolean. Editing=True, если форма используется в режиме редактирования; Editing=False, если форма используется в режиме ввода. Этот признак должен устанавливаться перед активацией формы.
Вывод полей записи в режиме редактирования можно обеспечить, зная значение первичного ключа этой записи. Для таблицы taFLAT таким ключом служит поле Adr. Перед активизацией формы в режиме редактирования значение первичного ключа нужной записи необходимо сохранить в признаке KeyValue, который следует объявить в разделе public класса TfmEDITFLAT как KeyValue : String. Тип признака KeyValue соответствует типу ключевого поля Adr.
При активизации формы происходит событие OnActivate, процедура обработки которого должна анализировать признак Editing и настраивать форму на заданный режим работы. Текст этой процедуры приведен на листинге 2.
Листинг 2. Процедура обработки события OnActivate
procedure TfmEDITFLAT.FormActivate(Sender: TObject);
begin
if Editing then
begin
Caption := 'Изменение сведений о квартире';
naFLAT.Enabled:=True; {Навигатор доступен}
with taFLAT do
begin
DisableControls;
First; SetKey;
FieldByName('Adr').AsString := KeyValue;
GotoKey; {Поиск записи по ключу}
EnableControls;
Edit; {Режим редактирования}
end;
end
else
begin
Caption := 'Регистрация сведений о квартире';
naFLAT.Enabled:=False; {Навигатор не доступен}
taFLAT.Append; {Режим дополнения}
end;
end;
Для кнопок Выход и Отмена следует задать процедуры обработки события OnClick. Переход в окно текстового редактора для ввода текста процедур осуществляется двойным щелчком на кнопке Выход или Отмена. Текст процедур показан на листинге 3.
Листинг 3. Процедуры обработки событий OnClick для кнопок Выход и Отмена
procedure TfmEDITFLAT.buExitClick(Sender: TObject);
begin
with taFLAT do
begin
if (State in [dsEdit,dsInsert]) and Modified then
Post;{Сохранить изменения, если действует режим}
end;{редактирования/дополнения и запись изменялась}
KeyValue := {Запомнить значение ключа для fmSHOWFLAT}
taFLAT.FieldByName('Adr').AsString;
fmEDITFLAT.Close;
end;
procedure TfmEDITFLAT.buCancelClick(Sender: TObject);
begin
taFLAT.Cancel; {Отменить изменения}
fmEDITFLAT.Close;
end;
На этом создание формы fmEDITFLAT завершается. Остается связать ее с пунктом меню Квартира в главной форме и кнопкой на панели быстрого доступа.
Сохраним сделанные в проекте изменения командой File|Save Project, задав имя EDITFLAT для файла с модулем формы fmEDITFLAT, и перейдем в окно главной формы.
Для связи формы fmEDITFLAT с главной формой нужно щелкнуть на пункте меню Квартира и в окне текстового редактора набрать два оператора, показанные на листинге 4, а предложение uses ABOUTSYS дополнить именем модуля EDITFLAT.
Листинг 4. Процедура вывода формы fmEDITFLAT в режиме ввода
procedure TfmMAINFORM.mmEditFlatClick(Sender: TObject);
begin
fmEDITFLAT.Editing:=False; {Задать режим ввода}
fmEDITFLAT.ShowModal; {Активизировать форму}
end;
Эти же операторы должны выполняться при нажатии кнопки sbNewFlat, поэтому в качестве процедуры обработки события OnClick для этой кнопки зададим процедуру mmEditFlatClick, приведенную на листинге 4. Для этого нужно в главной форме щелкнуть на строке события OnClick, щелчком на кнопке со стрелкой вызвать список имен процедур обработки событий и выбрать имя mmEditFlatClick.
Сохранив изменения командой File|Save Project, можно проверить работоспособность проекта, осуществив активизацию созданной формы из меню или кнопкой на панели быстрого доступа и убедившись в правильном функционировании формы fmEDITFLAT.
Аналогичным способом создаются две другие формы типа ввод/редактирование: fmEDITPHON и fmEDITPROF.
Создание формы fmSHOWFLAT. Выберем команду File|New Form, чтобы включить в проект пустую форму.
Поместим в эту форму три компонента Button и по одному компоненту DBGrid и DBNavigator, расположив их так, как показано на рис.8. Поместим также на любое свободное место в форме компоненты Table и DataSource.
Зададим для формы значения свойств Name=fmSHOWFLAT, Caption=Сведения о квартирах. Значения свойств других компонентов установим в соответствии с табл.5 и 6.
Таблица 5