![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как закрыть главную форму? [D6, Win95/98, NT4]
Igor_ © (2002-02-28 10:16:00)Запускается таймер и при достижении определенного значения надо закрыть все приложение. Таймер находится в DataModule, главная форма - MDI (если это имеет значение). Код такой:
procedure TDM.Timer1Timer(Sender: TObject);
begin
Timer1.Tag:=Timer1.Tag-1;
if (Timer1.Tag <= 0)then
begin
FormMain.Close;
exit;
end;
end;
При пошаговой отладке событие FormMain onClose вызывается, после этого попадаем в TDM.Timer1Timer на строку где exit, выходим из TDM.Timer1Timer - потом ошибка Exeption EOSError in module...
System Error Code 87.
Как привильно закрыть программу?
Юрий Зотов (2002-02-28 19:28:00) [1]> Vov © (28.02.02 18:32)
Круто. Но вот простые три слова - Application.MainForm.Close полностью заменяют всю эту громадину. Вместе с никому не нужной лишней кнопкой. Или уж тогда так - Кнопка.Click.
Vov (2002-02-28 18:32:00) [2]Иногда при посылке сообщений самой форме могут быть проблемы, самый надежный способ, как выяснилось путем проб и т.д., нарисовать на форме кнопку закрывающую форму, сделать ее невидимой а потом посылать ей два подряд сообщения:
SendMessage( кнопка.Handle, WM_LBUTTONDOWN , 0, 0 );
SendMessage( кнопка.Handle, WM_LBUTTONUP , 0, 0 );
работает даже при onActivate %)
Sava (2002-02-28 16:37:00) [3]чуть пишется в Дельфх подругому:
Application.Terminate
А вот сообщение послать это оригинально.
Набережных С. (2002-02-28 16:15:00) [4]PostMessage(FormMain.Handle,WM_CLOSE,0,0);
Sasha9 (2002-02-28 14:17:00) [5]2alexanderK
не только C++Builder
alexanderK (2002-02-28 14:12:00) [6]Application->Terminate(); // C++Builder
RoadStar (2002-02-28 13:14:00) [7]Halt;
Киляет все нафиг!!!
Юрий Зотов (2002-02-28 11:15:00) [8]Application.MainForm.Close
Fellomena (2002-02-28 10:31:00) [9]SendMessage(Application.MainForm, WM_CLOSE, 0, 0);