Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа не дает перезагружать систему 
V
    Опции темы
ilyalyu
Дата 27.6.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.10.2006

Репутация: нет
Всего: нет



Проблема такая. Когда пользователь нажимает на форме кнопку "закрыть" (кнопка с крестиком в правом верхнем углу формы), программа должна не закрываться, а сворачиваться в tray (или как это правильно назвать). Я это сделал с помощью события OnCloseQuery. Однако появилась проблема. Теперь, когда я пытаюсь перезагрузить систему, моя программа сворачивается в tray и система после этого не перезагружается. Очевидно, это происходит из-за того, что ей не удается закрыть мою программу. В связи с этим вопрос - как распознать, что система хочет перезагрузиться и закрыть программу?
PM MAIL   Вверх
_hunter
Дата 27.6.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



лови WM_ENDSESSION. при получении -- выходи.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MetalFan
Дата 27.6.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Отлавливать
WM_ENDSESSION, WM_QUERYENDSESSION
и закрывацца без всяких разговоров


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
dumb
Дата 27.6.2007, 16:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



напиши обработчик для WM_QUERYENDSESSION и в нем заканчивай работу своей программы.

Добавлено через 1 минуту и 35 секунд
последний. пойду убью себя... smile
PM MAIL   Вверх
sw04
Дата 27.6.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Код

protected procedure IsWindowsShutDown(var Msg: TMessage);WM_ENDSESSION;
..

procedure TForm1.IsWindowsShutDown(var Msg: TMessage);
begin 
inherited;
if Msg.WParam = 1 then MainForm.Close; // выгружаем приложение 
End;

Пример из drkb. Автор Song.


--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 27.6.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(dumb @  27.6.2007,  17:08 Найти цитируемый пост)
последний. пойду убью себя... smile 

ну вот, теперь не последний)))
Цитата(sw04 @  27.6.2007,  17:30 Найти цитируемый пост)
Пример из drkb. Автор Song. 




--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sw04
Дата 27.6.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Цитата(MetalFan @  27.6.2007,  20:54 Найти цитируемый пост)
ну вот, теперь не последний)))

так это же пример...
слова это одно, а пример действенней.


--------------------
<удалено администрацией>
PM   Вверх
ilyalyu
Дата 29.6.2007, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 25.10.2006

Репутация: нет
Всего: нет



Всем спасибо! smile Небольшой ньюанс: обрабатывать WM_ENDSESSION оказалось недостаточно, потребовалось обрабатывать WM_QUERYENDSESSION, и еще при обработке WM_QUERYENDSESSION надо установить Message.Result := 1. После этого все заработало как надо.

Это сообщение отредактировал(а) ilyalyu - 29.6.2007, 05:48
PM MAIL   Вверх
sw04
Дата 29.6.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



ilyalyu, сделай пометку, что вопрос решен.


--------------------
<удалено администрацией>
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.