![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Application.Terminate хотелось бы выполнить своевременно... [D6, Win2k]
Duce © (2002-03-19 17:39:00)Уважаемые, чей разум легок словно гелий а поток мысли подобен
Ниагарскому водопаду!
Что имеем: Delphi 6, Винный 2000 и дикое желание субжа:-).
При запуске приложения из *.DPR создаем одну из форм и вызываем ее метод, в которой проводим некие проверки внутри
try...exception и если случается Exception, то пытаюсь выполнить
Application.Terminate и подкрепляю ProcessMessages.
НО! Из метода выскакивает назад в код DPR, и продолжает его отра-
батывать, не смотря ни на что. Как результат - некрасивое окно
с белым крестом в красном круге от Виндов.
Как бы это перебороть?
Андрей Сенченко (2002-03-19 19:39:00) [1]>> Johnmen © (19.03.02 18:10)
>> Application.Terminate сработает по любому !
Не стоит, ИМХО, столь рьяно доказывать очевидно неправильные вещи. Вы уже не первый раз садитесь в лужу по полной программе именно с такими заявлениями.
Если будет время, специально для Вас подберу пяток случаев, в которых Application.Terminate не отработает никак и еще пяток - в которых он вызовет жестокий Access Violation.
Duce (2002-03-19 18:44:00) [2]То Юрий Зотов: Все верно, стоит мне внимательней читать хелп...
Я из любопытства попробовал там же, где шлю WM_QUIT, сделать
тут же Run - некорректно работает...
Юрий Зотов (2002-03-19 18:39:00) [3]Вот так категорично? Ну-ну...
Вынужден повторить: Application.Terminate не сработает ДО вызова Application.Run.
Пройдите отладчиком и убедитесь - только ПОСЛЕ. Иначе и не может быть, поскольку Application.Terminate посылает WM_QUIT, а цикл выборки сообщений запускается в Application.Run, не раньше.
Johnmen (2002-03-19 18:10:00) [4]>Юрий Зотов © : Application.Terminate сработает по любому !
Юрий Зотов (2002-03-19 17:46:00) [5]Application.Terminate не сработает до вызова Application.Run. ProcessMessages тоже. Используйте Halt.