
- •Пустая форма и ее модификация
- •Настройка Delphi
- •Имена в Delphi
- •Изменение свойств формы
- •Размещение нового компонента
- •Реакция на события
- •Модификация формы
- •Обработчик события OnClick
- •Динамическое изменение свойств компонента
- •Некоторые итоги
- •Событие OnActivate
- •Событие OnClose
- •Событие OnCloseQuery
- •Событие OnCreate
- •Событие OnDestroy
- •Событие OnHide
- •Событие OnPaint
- •Событие OnResize
- •Событие OnShow
- •Свойства класса tComponent
- •Методы класса tComponent
- •Свойства класса tControl
- •Методы класса tControl
- •События класса tControl
- •Свойства класса tWinControl
- •Методы класса tWinControl
- •События класса tWinControl
- •Свойства класса tApplication
- •Методы класса tApplication
- •События класса tApplication и их обработка
- •Свойства класса tStrings
- •Методы класса tStrings
- •Размещение фрейма на палитре компонентов
Событие OnClose
Событие OnClose наступает при закрытии формы. Форма получает это событие перед закрытием формы, которое может наступить либо при вызове метода Close, либо при выборе команды Close из системного меню.
Событие OnClose имеет тип TCloseEvent, описанный следующим образом:
TCloseEvent = procedure (Sender: TObject;
var Action: TCloseAction) of object;
Параметр Action определяет тип закрытия формы и может принимать одно из следующих значений:
Таблица 1. Значения параметра Action |
|
Значение |
Описание |
caNone |
Форму нельзя закрыть. |
caHide |
Форма не закрывается, а становится невидимой. |
caFree |
Форма закрывается. |
caMinimize |
Форма минимизируется (окно формы сворачивается). |
Проиллюстрируем использования параметра Action. Создадим новый проект, выполнив File | New | Application. Обработчик события OnClose выглядит следующим образом:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Подтверждение на закрытие.
If MessageDlg('Завершить приложение?',
mtConfirmation, mbOkCancel,0)=mrOk Then
Action:=caFree //Нажата Ok - закрываем форму.
Else
Action:=caNone; //Нажата Cancel - игнорируем закрытие.
end;
При закрытии формы на экран будет выведено диалоговое окно (рисунок 2):
Рис.2.
Диалоговое окно, появляющееся при
закрытии приложения
Текст этого примера можно взять здесь.
К началу
Событие OnCloseQuery
С помощью этого события можно разрешить или отменить закрытие формы. Это событие может наступить либо при вызове метода Close, либо при выборе команды Close из системного меню. В обработчике этого события можно изменять значение параметра CanClose сообщения OnCloseQuery.
Пример закрытия формы с подтверждением в этом случае может выглядеть следующим образом:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//Подтверждение на закрытие.
If MessageDlg('Завершить приложение?',
mtInformation, [mbOk,mbNo], 0)=mrOk Then
CanClose:=True //Нажата Ok - закрываем форму.
Else
CanClose:=False; //Нажата Cancel - игнорируем закрытие.
end;
Текст этого примера можно взять здесь.
Таким образом, событие OnCloseQuery имеет тип TCloseQueryEvent, описанный следующим образом:
TCloseQueryEvent = procedure (Sender: TObject; var CanClose: Boolean) of object;
К началу
Событие OnCreate
Это событие возникает при начальном создании формы. В обработчике данного события можно, например, задавать начальные значения свойствам формы и предусматривать другие различные действия, которые должны происходить в момент создания формы. Форма создается при запуске приложения либо при вызове метода Create.
Примечание. При создании формы события происходят в следующем порядке:
OnCreate;
OnShow;
OnActivate;
OnPaint.
Это событие имеет тип TNotifyEvent.
Таким образом, в обработчике события OnCreate помещаются те действия, которые должны выполниться только один раз при создании формы. Приведем пример обработчика этого события, где задается цвет фона формы, равный системному цвету, определенному в ядре Windows:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Color:=clAppWorkSpace;
end;
Текст этого примера можно взять здесь.
К началу