Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Taskbar: Mausbewegung für Programmicon (https://www.delphipraxis.net/126743-taskbar-mausbewegung-fuer-programmicon.html)

mholup 1. Jan 2009 17:22


Taskbar: Mausbewegung für Programmicon
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz