![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чем отличается Halt от Application.Terminate ?
kofman © (2003-01-31 12:21:00)Вопрос конечно ламерский, но кто по простому объяснит чем лучше закрывать программу Halt`от или Application.Terminate и почему?
seacat (2003-01-31 14:34:00) [1]
> Delirium^.Tremens © (31.01.03 13:40)
> Application.Terminate вызывает функцию API PostQuitMessage().
> Ресурсы корректно освобождаются. Работа приложения продолжается
> до получения WM_QUIT.
Я имел в виду, что стоит написать обработчик закрытия приложения самому. Так можно приложения прекрасно закрывать и из диспетчера задач. Application.Terminate делает тоже самое.
Delirium^.Tremens (2003-01-31 13:40:00) [2]>>seacat (31.01.03 13:34)
> Оба они делают одно и тоже: прерывают работу приложения
> нестандартным способом, без запроса на закрытие и освобождения
> ресурсов.
Application.Terminate вызывает функцию API PostQuitMessage(). Ресурсы корректно освобождаются. Работа приложения продолжается до получения WM_QUIT.
seacat (2003-01-31 13:34:00) [3]На мой взгляд лучше закрывать приложение методом Close главной формы. Тогда обрабатывается событие onCloseQuery, что наиболее корректно. И про отличие: Halt это старая процедура использующаяся еще в Паскале, Application.Terminate метод появившийся позднее. Оба они делают одно и тоже: прерывают работу приложения нестандартным способом, без запроса на закрытие и освобождения ресурсов.
Delirium^.Tremens (2003-01-31 12:48:00) [4]Halt предоставляет операционке освобождать ресурсы, занятые приложением.
Андрей Сенченко (2003-01-31 12:38:00) [5]по слухам Halt не освобождает память, занятую приложением :)