Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaPVUTS.doc
Скачиваний:
31
Добавлен:
11.04.2015
Размер:
3.15 Mб
Скачать
    1. События формы

При создании и отображении формы происходят пять следующих событий

Таблица 6 CобытияTFormпри создании и отображении формы

Событие

Назначение

OnCreate

Возникает при создании окна, но до его появления на экране. Позволяет распределить ресурсы и провести необходимую инициализацию компонентов и форм.

OnShow

Возникает при появлении окна на экране. К этому времени все компоненты и формы созданы и инициализированы

OnResize

Возникает при изменении размеров окна

OnActivate

Возникает в момент активизации окна (при получении фокуса ввода)

OnPaint

Возникает при необходимости прорисовки окна

Событие OnCreate происходит один раз за все время существования формы, прочие события могут вызываться неоднократно. При закрытии и уничтожении формы также генерируются пять событий.

Таблица 7 CобытияTFormпри закрытии и уничтожении формы

Событие

Назначение

OnCloseQuery

Возникает перед закрытием окна, в ответ на действия, закрывающие окно. Обработчик получает логическую переменную CanClose, определяющую может ли форма быть закрыта.

OnClose

Возникает перед закрытием окна. Параметр Action уточняет необходимые действия: саNоnе – не закрывать окно; caHide – спрятать окно; caFree – уничтожить окно; caMimimize – минимизировать окно

OnDeactivate

Возникает при передаче активности другому окну той же программы

OnHide

Возникает перед исчезновением окна

OnDestroy

Возникает перед уничтожением окна. Обычно используется для освобождения ресурсов, выделенных в OnCreate.

Кроме этих событий, для формы определены события от мыши и клавиатуры, которые класс TForm наследует от своих предков.

    1. Пример использования событий формы

Рассмотрим фрагмент кода, который восстанавливает размеры и положение формы (свойства Top, Left, Width, Height, Caption), сохраненные в файл при предыдущем закрытии. Для этого создадим обработчик события OnCreate, в котором необходимые свойства формы инициализируются значениями из файла.

procedure TForm1.FormCreate(Sender: TObject);

var f: TextFile;

begin

AssignFile(f, ‘myfile.txt’);

If FileExists(f) then

begin Readln(f, IntToStr(Top));

Readln(f, IntToStr(Left));

Readln(f, IntToStr(Width));

Readln(f, IntToStr(Height));

Readln(f, Caption);

end;

end;

При попытке закрытия формы, т.е. при генерации события OnCloseQuery, создается диалоговое окно для подтверждения закрытия окна.

procedure TForm1.FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

begin

If MessageDlg('Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrYes

then CanClose:=True

else CanClose:=False;

end;

end;

В обработке события закрытия формы OnClose значения необходимых свойств записываются в файл.

procedure TForm1.FormClose(Sender: TObject;

var Action: TCloseAction);

var f: TextFile;

begin

AssignFile(f, ‘myfile.txt’);

WriteLn(f, IntToStr(Top));

WriteLn(f, IntToStr(Left));

WriteLn(f, IntToStr(Width));

WriteLn(f, IntToStr(Height));

WriteLn(f, Caption);

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]