![]() |
| |
![]() |
![]() |
Рождение, жизнь и смерть... формы
|
OnCreate -> OnShow -> OnActivate -> OnPaint ->
OnResize -> OnPaint ... |
OnCreate
Это событие происходит, когда форма создается командой CreateForm. Обычно
вызовы этой функции содержатся в основном файле проекта (project source).
Когда форма создана и ее свойство Visible установлено в True, события
возникают в следующем порядке: OnShow, OnActivate, OnPaint. Использовать
обработчик события OnCreate можно, например, для выделения памяти для
динамических объектов. Любой объект, созданный в обработчике OnCreate
должен быть удален в обработчике события OnDestroy.
OnShow
Это событие происходит, когда форма показывается пользователю, прямо перед
отображением на экране (см. методы Show и ShowModal).
OnActivate
Обработчик этого события вызывается тогда, когда форма активизируется,
т.е. форма получает фокус ввода (input focus). В обработчике OnActivate
можно определить, какой из элементов ввода фактически получит фокус.
OnPaint, OnResize
Такие события, как OnPaint или OnResize происходят всякий раз перед тем,
как какой-нибудь элемент формы перерисовывается. Их можно использовать
для специальной прорисовки формы.
А что можно сказать про жизнь формы? Жизнь продолжается, пока кто-нибудь не закроет форму...
Программа выполняется, пока есть хотя бы одно видимое окно. События закрытия формы происходят в следующем порядке:
|
OnCloseQuery
Когда мы пытаемся закрыть форму, используя метод Close или нажимая Alt-F4
вызывается обработчик события OnCloseQuery. Его основная задача - перехватить
запрос на закрытие формы и при необходимости не допустить закрытия. Вот
так, например, можно спросить пользователя, действительно ли нужно закрыть
окно:
|
Как видно из примера, параметр CanClose определяет, действительно ли нужно закрыть форму. Устанавливая его в False, мы тем самым запрещаем закрытие формы.
OnClose
Обработчик события OnClose - последний шанс отменить закрытие формы. Параметр
Action обработчика может принимать следующие значения:
- caNone - закрытие формы запрещено.
- caHide - вместо закрытия формы, мы прячем ее.
- caFree - форма закрывается и память, занимаемая ею, освобождается.
- caMinimize - форма не закрывается, а минимизируется. Это действие по
умолчанию для форм MDI child.
OnDestroy
Событие происходит после события OnClose и обычно в обработчике этого
события выполняются действия, обратные тем, что выполнялись в обработчике
OnCreate.
![]() |
![]() |
![]() |
![]() |
|
|