Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi onMouseMove abfragen? (https://www.delphipraxis.net/92908-onmousemove-abfragen.html)

smart 28. Mai 2007 18:47


onMouseMove abfragen?
 
Hallo Alle!

Wie kann ich abfragen ob ich z.b. über ein Panel mit der Maus bin, ohne zu klicken?

Gruß
Heike

Blackheart 28. Mai 2007 18:53

Re: onMouseMove abfragen?
 
Du hast Dir doch schon mit deinem Titel die Anwort selbst gegeben.

smart 28. Mai 2007 19:01

Re: onMouseMove abfragen?
 
Zitat:

Zitat von Blackheart
Du hast Dir doch schon mit deinem Titel die Anwort selbst gegeben.

Nicht ganz. Ich brauche soetwas wie

Delphi-Quellcode:
if onMouseMove = True Then ....
Gruß
Heike

DGL-luke 28. Mai 2007 19:34

Re: onMouseMove abfragen?
 
Hallo,

da brauchst du HitTesting:

Delphi-Quellcode:
if PtInRect
  (rect(Panel1.ClientToScreen(point(0,0)),
        Panel1.ClientToScreen(point(Panel1.Width-1,Panel1.Height-1))),
   Mouse.CursorPos) then
   begin

   end;
Sorry für das Monster... jetzt kommen bestimmt gleich 5 leute die dir sagen, wies viel schöner, kürzer und eleganter geht :)

SirThornberry 28. Mai 2007 20:22

Re: onMouseMove abfragen?
 
du hast doch bei dem Panel das OnMouseMove?! Ich versteh nicht warum du da nicht erkennen kannst das die Mouse bewegt wird, schließlich wird das Ereignis ausgelöst sobald sich die Maus über dem Panel bewegt.

bitsetter 28. Mai 2007 20:38

Re: onMouseMove abfragen?
 
Zitat:

Zitat von DGL-luke
Sorry für das Monster... jetzt kommen bestimmt gleich 5 leute die dir sagen, wies viel schöner, kürzer und eleganter geht :)

Hi,

davon noch eine andere Version:
Delphi-Quellcode:
 if form1.ControlAtPos(form1.ScreenToClient(mouse.CursorPos), true, true)= Panel1  then
...

cruiser 28. Mai 2007 20:43

Re: onMouseMove abfragen?
 
form1 ist eine spezielle Instanz. lieber die aktuelle Instanz mit Self ansprechen:
Delphi-Quellcode:
if self.ControlAtPos(self.ScreenToClient(mouse.CursorPos), true, true) = Panel1  then
...
oder halt ganz drauf verzichten:
Delphi-Quellcode:
if ControlAtPos(ScreenToClient(mouse.CursorPos), true, true) = Panel1  then
...

Blackheart 28. Mai 2007 20:46

Re: onMouseMove abfragen?
 
Oder so
Delphi-Quellcode:
if FindDragTarget(Mouse.CursorPos, True)= Panel1 then...

smart 29. Mai 2007 09:26

Re: onMouseMove abfragen?
 
Vielen Dank für die Antworten!

Ich möchte, wenn ich über ein Panel mit der Maus gehe, was auslösen. Aber nur wenn ich über das Panel gehe. Das Panel ist so groß wie meine Form. Ich habe es versucht. Das auslösen klappt gut, aber das Gegenteil nicht. Versucht habe ich es u.A. so:

Delphi-Quellcode:
if FindDragTarget(Mouse.CursorPos, True)= Panel1 then Panel1.Color := cl Green else Panel1.Color := clBlack;
Hier wird das Panel zwar grün gefärbt, aber wenn ich von dem Panel wegziehe wird es nicht schwarz. Was mache ich da falsch?

Gruß
Heike

TeronG 29. Mai 2007 09:30

Re: onMouseMove abfragen?
 
Wann bzw. wo frägst du denn ab!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 Uhr.
Seite 1 von 3  1 23      

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