Delphi-PRAXiS
Seite 1 von 3  1 23      

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 OnMouseMove verzögern (https://www.delphipraxis.net/74410-onmousemove-verzoegern.html)

faux 2. Aug 2006 21:42


OnMouseMove verzögern
 
Hallo!

Bin mir fast sicher, dass es das schon gibt, nur kann ichs nicht finden: :wall:
Mit OnMouseMove kann ich sofort reagieren, wenn die Maus über ein bestimmtes Objekt bewegt wird; ich will aber erst nach einer gewissen Verzögerung reagieren. Wie kann man das realisieren?

Grüße
Faux

fwsp 2. Aug 2006 21:46

Re: OnMouseMove verzögern
 
vielleicht mit delay?
guck mal in die codelib.

faux 2. Aug 2006 21:47

Re: OnMouseMove verzögern
 
Zitat:

Zitat von fwsp
vielleicht mit delay?
guck mal in die codelib.

Wie das denn?
Kannst mir da ein Beispiel nennen?

Grüße
Faux

fwsp 2. Aug 2006 21:50

Re: OnMouseMove verzögern
 
oder meinst du, das der cursor mindestens X sekunden da ist und dann erst was passiert?

dann:
ein timer der ausgelöst wird wenn der cursor über das ding geht. ne boolsche variable die bei mouseover true wird und und dann in der prozedur nochmal abgeprüft wird.

EDatabaseError 2. Aug 2006 21:51

Re: OnMouseMove verzögern
 
ich glaub er will es so wie bei einem Hint du gehst drauf und dann kommt erst in ca. einer Sekunde das Hint ;-)

Martin K 2. Aug 2006 22:16

Re: OnMouseMove verzögern
 
Mein Vorschlag:
Einfach eine Integer-Zählvariable nehmen (z.B. die Tag-Eigenschaft), die bei OnMouseMove hochgezählt wird.
Bei einem bestimmten Wert der Zählvariable (z.B. if Tag > 50 then...) wird dann das Ereignis ausgelöst.

Bei OnMouseLeave natürlich wieder auf 0 stellen! (Tag := 0; )

DGL-luke 2. Aug 2006 22:25

Re: OnMouseMove verzögern
 
Und wenn man jetzt die Maus reinfährt und die Maus dann stehenlässt? dann wars das

ich würd im OnMouseMove einen Timer starten, wenn dieser beendet ist und die Maus immernoch über dem Control, kann man den Hint anzeigen (oder was immer man machen will).

EDIT: Man muss im Timer eigentlich nicht einmal was überprüfen - man kann einfach im OnMouseLeave den Timer stoppen.

Martin K 2. Aug 2006 22:29

Re: OnMouseMove verzögern
 
Zitat:

Zitat von DGL-luke
Und wenn man jetzt die Maus reinfährt und die Maus dann stehenlässt? dann wars das

ich würd im OnMouseMove einen Timer starten, wenn dieser beendet ist und die Maus immernoch über dem Control, kann man den Hint anzeigen (oder was immer man machen will).

EDIT: Man muss im Timer eigentlich nicht einmal was überprüfen - man kann einfach im OnMouseLeave den Timer stoppen.

Warum dann MouseMove nehmen?

In OnMouseEnter den Timer aktivieren und in OnMouseLeave deaktivieren :wink:


//Edit:
Wieso komm ich eigentlich auf die bescheuerte Idee, dass es sowas wie OnMouseEnter und OnMouseLeave gibt?
Stell grad fest:
Sowas gibts ja gar nich :duck:

sniper_w 2. Aug 2006 22:43

Re: OnMouseMove verzögern
 
Es gibt seht wohl ein
Zitat:

OnMouseEnter und OnMouseLeave
Event.

Martin K 2. Aug 2006 22:48

Re: OnMouseMove verzögern
 
Zitat:

Zitat von sniper_w
Es gibt seht wohl ein
Zitat:

OnMouseEnter und OnMouseLeave
Event.

Stimmt, bei nem TLabel, aber das wars dann auch schon :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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