Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

событие закрытия формы [D7]


Надежда ©   (2007-07-22 21:16:00) 

Как обработать  событие закрытия формы (крестик)?
Пожалуйста, ответьте!


Надежда   (2007-07-24 11:24:00) [1]

Спасибо!!! Разобрались. Надо было мне лучше подумать над алгоритмом программы. Спасибо.


Leonid Troyanovsky   (2007-07-22 22:17:00) [2]


> Надежда   (22.07.07 21:39) [2]

> событие обработать. т.е. в процессе расчетов анализировать
> нажат ли крестик?

В процессе расчетов любые сообщения, в том числе таймера
или закрытия окна, обрабатывать некому, бо первичный поток
занят оными расчетами.

Поэтому, надо разбавлять расчеты вызовами Application.ProcessMessages,
либо делать расчеты в отдельном TThread.
Оба способа имеют свои неудобства, но первый - проще.

--
Regards, LVT.


{RASkov}   (2007-07-22 21:56:00) [3]

Если необходимо наоборот предотвратить закрытие программы, то либо на OnClose параметр Action выставлять в caNone либо на OnCloseQuery CanClose в False....
Пример:
Перед вычислениями переменную var StartProc: Boolean; выставляем в True. (Соответственно после вычислений в False, также нужно предусмотреть "запасной выход" из программы :))
на OnCloseQuery:
CanClose:=not StartProc;
Вариантов куча.... может быть можно и без переменной обойтись - CanClose:=not Timer1.Enabled;
Вопрос подробнее задавай.....


{RASkov}   (2007-07-22 21:47:00) [4]

> [2] Надежда   (22.07.07 21:39)

if Application.Terminated then ...


Надежда   (2007-07-22 21:39:00) [5]

Спасибо. А как быть если у меня выполняются расчеты по таймеру, а в это время пользователь нажал крестик и мне надо это событие обработать. т.е. в процессе расчетов анализировать нажат ли крестик?


begin...end   (2007-07-22 21:31:00) [6]

OnCloseQuery
OnClose


Наверх

Титульная страница Поиск, карта сайта Написать письмо