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