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

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

Application.Terminate


Майя ©   (2004-11-16 13:01:00) 

Как такое может быть? На Form.Create проверяю некое условие, если оно не выполнено - пишу Application.Terminate. При этом приложение не завершается, потому что From.Show тоже отрабатывает!


ламер   (2004-11-21 19:27:00) [1]

> Zhekson   (16.11.04 13:09) [2]
> да, несозданную вещь нельзя закрыть...
 какая глупость. при вызове OnCreate формы, она уже создана.

> kostan ©   (17.11.04 09:09) [6]
> (в Win95-98 может не освободить память)
 не может.


_Дельфин_   (2004-11-21 18:07:00) [2]

А еще можно перехватывать событие создания формы - wm_Create - оно ведь посылается форме ДО того, как происходит обработка события Form1.OnCreate !


Майя   (2004-11-17 12:05:00) [3]

Спасибо, так и сделаю. Все большое спасибо.


Семен Сорокин   (2004-11-17 10:06:00) [4]

Application.Terminate;
Application.ShowMainForm := false;


Дмитрий В. Белькевич   (2004-11-17 09:11:00) [5]

Иногда полезно исходники делфи смотреть:

procedure TApplication.Terminate;
begin
 if CallTerminateProcs then PostQuitMessage(0);
end;

В очередь добавляется сообщение о закрытиипрограммы.А когда очередь до очереди дойдет - как повезет. Формы успеют посоздаваться.


kostan   (2004-11-17 09:09:00) [6]

ставить Application.Terminate; в CreateForm можно  (сам ставлю)
только до этого уничтожить ВСЕ формы созданные до этого через Destroy убрать OnShow и наверно освободить какие то ресурсы??!
halt(0) - не есть нормальное завершение
(в Win95-98 может не освободить память)


KSergey   (2004-11-17 08:55:00) [7]

> [4] Майя   (17.11.04 08:50)
> А как можно проверять ДО Application.CreateForm??

Модифицировать dpr


Майя   (2004-11-17 08:50:00) [8]

ну я считала что форма в момент создания Create уже создана. Если нет, тогда конечно. Если ставлю на Show - все срабатывает.
А как можно проверять ДО Application.CreateForm?? Это главная форма.


Плохиш   (2004-11-16 13:14:00) [9]


> Майя   (16.11.04 13:01)  
> Как такое может быть? На Form.Create проверяю некое условие,
> если оно не выполнено - пишу Application.Terminate. При
> этом приложение не завершается, потому что From.Showтоже
> отрабатывает!

Но после этого-то приложение завершается?
Читайте справку по Application.Terminate.
А в контексте вопроса, Вам нужна команда halt, которая убивает приложение выстрелом в голову ;-)


Zhekson   (2004-11-16 13:09:00) [10]

да, несозданную вещь нельзя закрыть...

Попробуйте Терминить в Form.Show.


panov   (2004-11-16 13:06:00) [11]

>Майя   (16.11.04 13:01)
А может быть, проверять ДО Application.CrateForm ?


Наверх

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