Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Программа не дает выключиться Windows   Найти похожие ветки 

 
Коля   (2006-11-09 18:04) [0]

После того как в событии FormCloseQuery поставил application.terminate; - программа закрывается, но Windows перестает выключаться.

Программа имеет иконку в трее, отлавливает сообщение SC_MINIMIZE и уходит в трею, может быть дело в этом? Так же на момент выключения ServerSocket слушает порт.


procedure TChatForm.WMSysCommand;
begin
if (Msg.CmdType = SC_MINIMIZE) then
ChatForm.visible:=false
else
inherited;
end;


Как с этим бороться?


 
Rouse_ ©   (2006-11-09 18:06) [1]

ServerSocket не от NetMasters случаем? Если нет, то в оконной процедуре иконки DefWindowProc вызывается?


 
Коля   (2006-11-09 18:11) [2]

ServerSocket стандартный
DefWindowProc нет, иконку убираю так:
 try
   with tray do begin
     cbSize := SizeOf(TNotifyIconData);
     Wnd := ChatForm.Handle;
     uID := 1;
   end;
   Shell_NotifyIcon(NIM_DELETE, Addr(tray));

 finally
   Application.Terminate;
 end;


 
Коля   (2006-11-09 18:14) [3]

А если убрать application.terminate из FormCloseQuery то дело на нем и повисает,  FormClose FormDestroy не происходят


 
Ketmar ©   (2006-11-09 18:50) [4]

"имеет иконку в трэе". убери её. или возьми нормальный компонент. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 18:58) [5]

от NetMasters тоже стандартный


 
Ketmar ©   (2006-11-09 19:04) [6]

таки ищи гадину, которая глотает запрос на окончание сессии.


 
Коля   (2006-11-09 19:19) [7]

> таки ищи гадину, которая глотает запрос на окончание сессии.

А разьве если запрос и был проглочен, но программа завершилась, выключение винды все равно прерывается?

Есть 2 вопроса:

Как вручную обработать этот запрос?
Во первых как дебагить такую ситуацию?


 
Ketmar ©   (2006-11-09 19:53) [8]

>[7] Коля 9-Nov-2006, 19:19
>А разьве если запрос и был проглочен, но программа
>завершилась, выключение винды все равно прерывается?
не обязательно. см. справку по WM_QUERYENDSESSION.

>Есть 2 вопроса:
>Как вручную обработать этот запрос?
поймать сообщение (см. выше) -- желательно в application -- и ответить.

>Во первых как дебагить такую ситуацию?
WinSpy/WinSpector/... и смотреть, что, кому, куда и когда приходит, а также что на это отвечают.


 
Коля   (2006-11-09 19:53) [9]

Да уж.......
Выявил проблему после того как весь (весь !!!!!!) код программы стоял в фигурных скобках и когда я начял удалять с формы компоненты. Эх люблю я Делфи...

А виноваты именно NetMasters. Стоит их NMFtp который и глотает сообщение.
Причем он выключен, и программа к нему не обращается.

Как лечиться?

(Delphi 6 sp2)


 
Ketmar ©   (2006-11-09 20:12) [10]

>[9] Коля 9-Nov-2006, 19:53
>А виноваты именно NetMasters.
это известный их баг.

>Как лечиться?
путём выкидывания NM в топку и перехода на Indy/ICS/Synapse/WinSock API/etc/etc/etc.


 
Коля   (2006-11-09 20:46) [11]


> путём выкидывания NM в топку и перехода на Indy/ICS/Synapse/WinSock
> API/etc/etc/etc.

Слишком я ленив чтобы все переписывать... Но на будующее учту.

А если, не дай бог, кто нибудь еще столкнется с этой гадостью, то лечится путем добавления строчки
NMFTP1.Destroy;
в FormCloseQuery


 
Anatoly Podgoretsky ©   (2006-11-09 20:54) [12]

> Коля  (09.11.2006 20:46:11)  [11]

Ты еще ленив и справку прочитать про Destroy


 
Rouse_ ©   (2006-11-10 09:17) [13]


> DefWindowProc нет

ну тогда вот тебе и ответ - нужно ее вызывать. И есественно еще и NMFtp выкинуть.


 
RWolf ©   (2006-11-10 09:34) [14]

>[11]
Это лечится установкой Powersock последней версии. Сам недавно столкнулся с этой проблемой.


 
MetalFan ©   (2006-11-10 11:14) [15]

>[14]
кстати и indy лучше тоже иметь последней версии)



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.04 c
15-1162889015
m-kirill-2003
2006-11-07 11:43
2006.11.26
CGI


15-1162669363
antonn
2006-11-04 22:42
2006.11.26
про апачи и прочее для создания сайта на пхп...


5-1144329234
Alex Romanskiy
2006-04-06 17:13
2006.11.26
Компоненты для работы с MySQL


2-1163083774
SerGoP
2006-11-09 17:49
2006.11.26
Нарастающий итог в столбце


4-1152247162
DanilinS
2006-07-07 08:39
2006.11.26
Экспорт информации из другой программы.