Кто закрывает программу (окно)?

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
isms.ru
Сообщения: 47
Зарегистрирован: 11 янв 2007, 16:45

13 мар 2007, 16:13

в CloseQuery спрашиваю, действительно ли юзер хочет завершить прогу?
Если да, то завершаю, если нет, то не завершаю.
Но если винда идет на перезагрузку. например, то также выскакивает этот вопрос и далее "программа не отвечает " и т.д.

Т.е. надо определить, кто пытается завершить прогу: юзер или винда.

А вот как это сделать?
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

13 мар 2007, 16:38

Перед перезагрузкой винда посылает в главное окно приложения WM_QUERYENDSESSION. Если приложение его игнорирует, то винда посылает WM_CLOSE. Если приложение продолжает молчать, то тогда видимо следует диалог и TerminateProcess()
2B OR NOT(2B) = FF
Аватара пользователя
alex@net
Сообщения: 11
Зарегистрирован: 24 ноя 2007, 17:58

25 ноя 2007, 00:38

запиши в closequery формы
begin
if cds.changecount>0 then
begin
case messagedlg('yes','no',mtclose,mbnocancel,0) of
mryes:close.execute;
mrno:cds.cancelupdates;
end;
end;
end;
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

27 ноя 2007, 16:05

alex@net, что за бред написан? пока наблюдаю... впоследствии буду такие посты удалять нафик
Изображение
Ответить