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

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

Как закрыть главную форму? [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);


Наверх

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