![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не закрывается windows
BelchonokH © (2003-07-02 21:35:00)Доброго вам! У меня такая проблема, пока работает моя программа windows не хочет ни сам закрываться, ни мою программу закрывать, делаю как у Бартова в примере с треем, перехватываю закрытие кнопкой клоус и сворачиваю прогу в трей, однако в его примере всё работает, в моём не хочет, кто-нибудь с этим сталкивался? Что делать? что это может быть хотя бы, подскажите пожалуйста?
BelchonokH (2003-07-25 18:12:00) [1]Оказалось перехват событий вовсе не причём, и result у меня в false приравнивается. Похоже в программе, я что-то где-то читал по этому поводу, при завершении работы Виндоус не вызывает метод Destroy всех объектов, а автоматом это в моём объекте не предусмотрено (компонент довольно специфический) и он просто не даёт закрыть Виндоус, теперь я вызываю метод Destroy объекта в событии QueryEndSession и всё нолрмально завершается...
Хи-хи! Можно программку состряпать с этим компонентом, скрыть её всеми доступными средствами и поставить боссу в автозагрузку, и потом каждый вечер получать удовольствие смотря на то как босс пытается выключить компьютер, на это можно смотреть часами... :)))
SPeller (2003-07-25 09:46:00) [2]Или Result := False. Если будет True, что наиболее вероятно (вероятность того, что среди 32 битов не окажется ни одной единицы - практически ноль), то обработка сообщения не пойдёт дальше обработчика. А в КОЛ сначала обрабатываются все DynHandlers, OnMessage, а уже потом стандартные действия, корорые, в свою очередь, при необходимости вызывают DefWindowProc.
Rouse_ (2003-07-25 01:05:00) [3]Это стандартная ошибка начинающих программистов
В конце функции (процедуры) поставьте:
Result := DefWindowProc(FHandle, Msg, WParam, LParam);
Желаю успехов
centronix (2003-07-25 00:06:00) [4]Еще там было что-то связанное с обработкой WM_QUERYENDSESSION кажется...
Dimaxx (2003-07-24 23:26:00) [5]Если ты сам перезагружаешь винду, то в функции ExitWindowsEx добавляй EWX_FORCE к первому операнду.
_Polymorphic_ (2003-07-24 18:39:00) [6]Тпррр... Не понял! Как-ето винда не закрывается? У нее ж дефолтовый таймаут в 20 сек. (юзер может менять), в теч. которго она ждет. Потом она просто киляет все процессы и идет спать. Кстати, то же делал такую прогу с треем, но проблем не было.