Przeszukałem kilka forum jakie znam, ale na mój problem nie znalazłem wyjaśnienia :(
Od razu zakładam żeby przeczytać cały post, bo możecie mnie nie zrozumieć :(
Mam problem z TrayIcon, chodzi dokładnie oto, aby po uruchomieniu projektu od razu pokazało się okno Form1 i TrayIcon, gdy kliknę prawym przyciskiem myszki na Trayicon to żeby pokazało się PopUpMenu1. To akurat udało mi się zrobić, ale jest problem z PopUpMenu. Dopiero za drugim razem gdy Form1.visible:=true; kliknę myszką to się pokazuje PopUpMenu. A gdy Form1.visible:=false; to wtedy po kliknięciu myszką PopUpMenue pokazuje się za pierwszym razem.
Może jest przez to, że gdy klikam na TrayIcon to okno Form1 staje się nie aktywne... [???]
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Initialize;
ExtendedStyle:=GetWindowLong(Application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle,GWL_EXSTYLE,ExtendedStyle or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
with NotifyIconData do begin
hIcon := Icon.Handle;
StrPCopy(szTip, Application.Title);
Wnd := Handle;
uCallbackMessage := WM_ICONTRAY;
uID := 1;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
cbSize := sizeof(TNotifyIconData);
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
procedure TForm1.Icontray(var Msg: TMessage);
var
CursorPos : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
GetCursorPos(CursorPos);
PopupMenu4.Popup(CursorPos.x, CursorPos.y);
end;
if Msg.lParam = WM_LBUTTONDOWN then
if form1.Visible=false then show
else hide;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
Hide;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;
Pozdrawiam... i czekam na jakieś odpowiedzi..