![]() |
über welchem objekt ist die maus
Hi,
ich habe mir selbst einen Button, bestehend aus einem Label und 2 Images gebaut. Das 2te Image soll quasi ein Hovereffekt sein. Also blende ich im onMouseEnter das erste Bild aus und der 2te ein. Im OnMouseLeave des zweiten Bildes blende ich das erste Bild ein und das 2te aus. Problem: Kommt man mit der Maus auf das Label (das soll man sogar) wird das OnmouseLeave-Eregnis ausgelöst. Jetzt dachte ich mir, ich bau eine Abfrage im OnMouseOut ein und schaue ob sich die Maus über dem Label befindet. Ist dies wahr, bleibt das Hoverbild da, wo es ist. :wall: Doch wie stelle ich fest über welcher Komponente sich die Maus befindet? Schonmal vielen Dank :coder2: |
Re: über welchem objekt ist die maus
Warum prüfst du nicht einfach, ob die Mauskoordinaten innerhalb des Labels liegen :gruebel: ?
|
Re: über welchem objekt ist die maus
Zitat:
|
Re: über welchem objekt ist die maus
Delphi-Quellcode:
Einfach noch so umschreiben, dass man das Label und die Mauskoordinaten übergeben kann. Sieht für mich nicht sonderlich kompliziert aus.
Function MouseInLabel : boolean;
begin result := false; if (mouse.x > label1.left) and (mouse.x < (label1.left + label1.width)) and (mouse.y > label1.top) and (mouse.y < (label1.top + label1.height)) then result := true; end; |
Re: über welchem objekt ist die maus
Da habe ich wohl zu kompliziert gedacht :gruebel:
Vielen Dank für den Code :thumb: |
Re: über welchem objekt ist die maus
Also wenn du das kompliziert nennst :stupid: ...
Delphi-Quellcode:
PS: Meinte eigentlich schon im letzten Beitrag das Image, dadurch wird das Ganze unabhängig vom Inhalt
if not PtInRect(Image.BoundsRect, Parent.ScreenToClient(Mouse.Position)) then [...]
|
Re: über welchem objekt ist die maus
Zitat:
Hab Mouse.Position durch Mouse.CursorPos ersetzt da es bei mir kein Position gab. |
Re: über welchem objekt ist die maus
Das schiebe ich zu einem Drittel auf das wirklich strunzdumme IntelliSense von D6 und zu einem weiteren Drittel auf die nicht sehr logische Benennung der Eigenschaft und zu einem letzten Drittel war es einfach eine Aufgabe an dich :mrgreen: . Aber eine AV ist trotzdem interessant, eigentlich sollte es gar nicht kompilieren.
|
Re: über welchem objekt ist die maus
Ahh, parent muss Image2 heißen. Das habe ich ja voll übersehen :-)
Danke :mrgreen: EDIT: Aber wenn ich mit der Maus von obenher auf das Bild fahre gehts nicht. Nur von links, rechts und unten. Wieso? |
Re: über welchem objekt ist die maus
Die Funktion FindVCLWindow liefert das entsprechende Control zu einem Punkt, vielleicht geht es damit besser.
Edit: Bzw. funktioniert mit einem fensterlosen Label natürlich gar nicht, aber daran denkt man halt erst, nachdem man sich blamiert hat. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz