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

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

События при завершении приложения? [D5, Win95/98, WinXP]


TankMan ©   (2002-10-30 18:20:00) 

Я вод задался вопросом, какие события происходят при завершении приложения, вот например у меня, форма, на OnClose(или OnHide,OnDestroy) допустим выдается сообщение, какое нибудь, И оно выдается, когда я нажимаю на крестик, в верхнем углу, но есть на форме конопочка - "выход", где прописано Application.Terminate, и когда я нажимаю на ЭТУ кнопочку, то сообщений никаких нет. Почему? Ведь форма то закрывается, почему не происходит OnClose? И вообще, как отловить, такое закрытие?


TankMan   (2002-10-30 23:14:00) [1]

Я вот не пробовал,но когда по верх главного окна открыто еще куча модальных, точнее модальным отрыто одно окно, на нем отрыто еще одно модальное, и т.д. и в любом месте воспользовавшить, Application.MainForm.Close программа закроеться полностью?


TTCustomDelphiMaster   (2002-10-30 22:10:00) [2]


> но не писать везде Application.Mainform.Close;


Замените Application.Terminate на Application.Mainform.Close. Больше ничего не надо.


TankMan   (2002-10-30 21:50:00) [3]

А можно как-то отловить это по раньше, просто мне нужно обработать закрытие, до того, как все комопненты уничтожены, напрмер выдать сообщение какое нибудь, перед завершением, но не писать везде Application.Mainform.Close;
А то получается, когда нажимаю Alt+F4 - сообщение появляется, а когда нажимаю Exit сообщения нет. Я раньше это делал как-то вроде на Дельфи, но очень давно и не помню... :(


TTCustomDelphiMaster   (2002-10-30 20:54:00) [4]

Вместо Application.Terminate вызывайте Application.MainForm.Close;

Ну а если желаете сделать что то после Application.Terminate используйте finalization section

...
var
F: TextFile;
implementation
....

initialization

finalization
begin
AssignFile(F, "c:\aa.txt");
Rewrite(F);
Writeln(F, "Приложение закрыто в "+TimeToStr(Time()));
CloseFile(F);
end;


Наверх

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