![]() |
Welches Control befindet sich unter dem Mauscursor?
Guten Morgen.
Ich möchte eine Aktion ausführen, wenn sich der Mauscursor über einem Label befindet - das klappt auch so:
Delphi-Quellcode:
Jeztt möchte ich das Ganze aber mit einer Verzögerung unter Verwendung eines Timers haben:
procedure TWinForm.Panel1_MouseEnter(sender: System.Object; e: System.EventArgs);
begin (Sender as System.Windows.Forms.Control).BackColor := System.Drawing.Color.Red; end;
Delphi-Quellcode:
Wie kann ich in Timer1.Tick nun feststellen, über welchem Control sich der Mauscursor befindet?
procedure TWinForm.Panel1_MouseEnter(sender: System.Object; e: System.EventArgs);
begin Timer1.Enabled := true; end; procedure TWinForm.Timer1_Tick(sender: System.Object; e: System.EventArgs); begin Timer1.Enabled := false; (?????).BackColor := System.Drawing.Color.Red; end; Vielen Dank im Voraus. Gruß Jürgen |
Re: Welches Control befindet sich unter dem Mauscursor?
Hallo Jürgen,
lange nichts voneinander gehört... Theoretisch müsstest Du Dir in MouseEnter merken, welches Control mit der Maus angelaufen wurde:
Delphi-Quellcode:
Praktisch löst das aber Dein Problem nicht, weil Du nicht weißt, ob die Maus sich nach dieser Zeit immer noch über ctlTemp befindet. Dazu musst Du die statische Funktion
private ctlTemp: TWinControl;
procedure TWinForm.Panel1_MouseEnter(sender: System.Object; e: System.EventArgs); begin // ich vermute, die Abfrage ist nicht nötig, weil MouseEnter durch keine anderen Objekte // ausgelöst werden kann; aber das müsstest Du überprüfen if sender is TWinControl then begin ctlTemp = sender as TWinControl; Timer1.Enabled := true; end; end; procedure TWinForm.Timer1_Tick(sender: System.Object; e: System.EventArgs); begin Timer1.Enabled := false; ctlTemp.BackColor := System.Drawing.Color.Red; end; ![]() Einfacher sollte es mit dem Ereignis ![]() Viel Erfolg bei der Suche! Jürgen |
Re: Welches Control befindet sich unter dem Mauscursor?
Hallo Jürgen.
Mit MouseHover hab ich's schon versucht. Allerdings habe ich die zeitliche Verzögerung nicht hingekriegt - MouseHoverTime habe ich weder in der Delphi-Hilfe noch in der SDK-Dokumentation gefunden. Ich werd's mal mit Deinem ersten Vorschlag versuchen. Vielen Dank und noch einen schönen Sonntag. Gruß Jürgen. PS. War ein paar Tage in Rom - um mir den Geldbeutel klauen zu lassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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