sprawa byla juz na forum bo czytelem z 10 postow o tym , ale nie znalazlem rozwiazania. Jest tak , mam program i jesli on przestaje byc sktywny to sie wrzuca do Traya (tylko nie CoolTray'em) procedurką :
procedure TaskbarIconShow;
begin
with NotifRec do
begin
cbSize := SizeOf(NotifRec);
Wnd := MainFrm.Handle;
uID := IconId;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage := WM_MYNOTIFYMSG;
hIcon := MainFrm.Icon.Handle;
szTip := 'xxx';
end;
if Shell_NotifyIcon(NIM_ADD,@NotifRec) then
begin
ShowWindow(MainFrm.Handle,SW_HIDE);
end;
end;
no i teraz jak on siedzi w tym Tray;u to jak jest zamykany windows - to sie nie zamyka (ani program ani windows : ( ) no i dlaczego ? w procedurze OnClose mam:
If Closing = True then Action := caFree else TaskBarIconShow;
CLosing to dodatkowa zmienn ktora informuje czy program ma sie zamknąc czy nie, dodatkowo mam procedure:
procedure TMainFrm.WMSysCommand(var Message: TWMSysCommand);
Begin
case Message.CmdType of
SC_MINIMIZE :
TaskbarIconShow;
SC_CLOSE :
TaskBarIconShow;
{ 61458 :
Begin
TaskBarIconHide;
Closing := True;
Close;
End; }
else
inherited;
end;
End;
no i pytanie jaki jest ten komunikat jak sie wylacza winda, znaczy jaki jest wysylany do programu ? probowalem WM_QUERYENDSESSION ale nie dziala, jak dalem w tej ostatniej zeby mi napisal numer komunikatu przy zamykaniu windy (ShowMessage(IntToStr(Message.CmdType))) to mi pisze 61458 ale tylko jak uruchamiam program w Delphi, a jak z pod windowsa to nie wyskakuje ten komunikat : ( juz nie wiem co jest : (
z gory dziekuje --pozdrowienia