в CloseQuery спрашиваю, действительно ли юзер хочет завершить прогу?
Если да, то завершаю, если нет, то не завершаю.
Но если винда идет на перезагрузку. например, то также выскакивает этот вопрос и далее "программа не отвечает " и т.д.
Т.е. надо определить, кто пытается завершить прогу: юзер или винда.
А вот как это сделать?
Кто закрывает программу (окно)?
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Перед перезагрузкой винда посылает в главное окно приложения WM_QUERYENDSESSION. Если приложение его игнорирует, то винда посылает WM_CLOSE. Если приложение продолжает молчать, то тогда видимо следует диалог и TerminateProcess()
2B OR NOT(2B) = FF
запиши в 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;
begin
if cds.changecount>0 then
begin
case messagedlg('yes','no',mtclose,mbnocancel,0) of
mryes:close.execute;
mrno:cds.cancelupdates;
end;
end;
end;
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
alex@net, что за бред написан? пока наблюдаю... впоследствии буду такие посты удалять нафик
