Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
70
Добавлен:
16.04.2013
Размер:
449.54 Кб
Скачать

2.2.2. Создание формы fmAboutsys

Эта форма создается на базе стандартного шаблона Aboutbox, выбираемого на странице Templates в окне Browse Gallery, которое активизируется командой File|New Form. После включения шаблона в проект его нужно настроить, дополнив необходимыми компонентами, и подключить к пункту меню “О системе”.

Настройка шаблона начинается заданием значений свойств Name=fmABOUTSYS и Caption=О системе. Далее в форме fmABOUTSYS нужно исправить значения свойства Caption четырех компонентов Label, чтобы они соответствовали эскизу, показанному на рис.6, а у компонента Image установить свойство Picture, загрузив файл finance.bmp из каталога F:\DELPHI\SPLASH\256color.

Сохраним в каталоге D:\DELPHI\PROGRAM дополненный проект, выбрав команду File|Save Project и задав имя ABOUTSYS для файла с модулем формы fmABOUTSYS.

Созданную форму необходимо связать с пунктом меню в главной форме. Для этого после щелчка на пункте меню “О системе” в окне текстового редактора набирается оператор

fmABOUTSYS.ShowModal;

выполнение которого активизирует форму fmABOUTSYS, а в начале раздела Implementation модуля MAINFORM записывается предложение

uses ABOUTSYS;

2.2.3. Создание формы fmEditflat

Выберем команду File|New Form и нажмем в появившемся окне Browse Gallery кнопку ОК, чтобы включить в проект пустую форму Blankform.

Поместим в эту форму 5 компонентов Label для отображения поясняющего текста, 3 компонента DBEdit, 2 компонента Button, компонент DBComboBox и компонент DBNavigator, расположив их так, как показано на рис.7. Поместим также на любое свободное место в форме компоненты Table и DataSource.

Зададим значение свойства Name формы равным fmEDITFLAT и значения свойств других компонентов согласно табл.5.

Таблица 5

Свойства компонентов, расположенных на форме 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

TableName

DataSet

DataSource

DataField

VisibleButtons

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 типа Boolean, объявив его в разделе publicкласса TfmEDITFLAT : Editing=True, если форма используется в режиме редактирования; Editing=False, если форма используется в режиме ввода. Этот признак должен устанавливаться перед активацией формы.

Вывод полей записи в режиме редактирования можно обеспечить, зная значение первичного ключа этой записи. Для таблицы taFLAT таким ключом служит поле Adr. Перед активизацией формы в режиме редактирования значение первичного ключа нужной записи необходимо сохранить в признаке KeyValue типа String, который следует объявить в разделе publicкласса TfmEDITFLAT. Тип признака 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.