Hallo,
ich habe ein kleines Problem und zwar möchte ich ein Fenster schließen wenn der Mauszeiger das Programmicon nicht mehr in der Taskleiste berührt.
Das Fenster sollte so lange der Mauszeiger auf das Icon zeigt geöffnet bleiben.
Das öffnen des Fensters habe ich mit der Windows Message gelöst und die Abfrage ob der Mauszeiger das Icon verlassen hat funktioniert nicht richtig.
Delphi-Quellcode:
WM_MOUSEMOVE:
begin
if SchWin = False then //Window anzeigen
begin
direction:=1;
form3.Hide;
form3.Left := screen.WorkAreaWidth - form3.Width;
form3.Top := screen.WorkAreaHeight;
form3.Show;
form2.SetFocus;
for x := 0 to form3.Height do begin
sleep(1);
//application.ProcessMessages;
form3.Top := screen.WorkAreaHeight - x;
end;
SchWin := true;
end
else
if Form3.visible = false then
SchWin:= False
{else //Code nicht aktiv
begin
{hTaskBar := FindWindow('Shell_TrayWnd', nil);
temp:=TrayIcons.ItemCount;
Schwin1 := False;
pt := form2.ScreenToClient(Mouse.CursorPos);
for i3 := 0 to temp - 1 do
begin
SendMessage(hTaskbar, SB_GETRECT, i3, Integer(@PanelRect));
if PtInRect(PanelRect,pt) then
SchWin1 := true;
end;
if SchWin1 = false then
begin
//SchWin:=true;
//form3.Hide;
end;
end; }
end;
Vielleicht hat einer ja eine Lösung dazu.