![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
События при завершении приложения? [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;