Форум: "Основная";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];
ВнизКак закрыть главную форму? Найти похожие ветки
← →
Igor_ (2002-02-28 10:16) [0]Запускается таймер и при достижении определенного значения надо закрыть все приложение. Таймер находится в 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.
Как привильно закрыть программу?
← →
Fellomena (2002-02-28 10:31) [1]SendMessage(Application.MainForm, WM_CLOSE, 0, 0);
← →
Юрий Зотов (2002-02-28 11:15) [2]Application.MainForm.Close
← →
RoadStar (2002-02-28 13:14) [3]Halt;
Киляет все нафиг!!!
← →
alexanderK (2002-02-28 14:12) [4]Application->Terminate(); // C++Builder
← →
Sasha9 (2002-02-28 14:17) [5]2alexanderK
не только C++Builder
← →
Набережных С. (2002-02-28 16:15) [6]PostMessage(FormMain.Handle,WM_CLOSE,0,0);
← →
Sava (2002-02-28 16:37) [7]чуть пишется в Дельфх подругому:
Application.Terminate
А вот сообщение послать это оригинально.
← →
Vov (2002-02-28 18:32) [8]Иногда при посылке сообщений самой форме могут быть проблемы, самый надежный способ, как выяснилось путем проб и т.д., нарисовать на форме кнопку закрывающую форму, сделать ее невидимой а потом посылать ей два подряд сообщения:
SendMessage( кнопка.Handle, WM_LBUTTONDOWN , 0, 0 );
SendMessage( кнопка.Handle, WM_LBUTTONUP , 0, 0 );
работает даже при onActivate %)
← →
Юрий Зотов (2002-02-28 19:28) [9]> Vov © (28.02.02 18:32)
Круто. Но вот простые три слова - Application.MainForm.Close полностью заменяют всю эту громадину. Вместе с никому не нужной лишней кнопкой. Или уж тогда так - Кнопка.Click.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c