![]() |
Label unter Mausposition
tach...
und zwar hab ich folgendes problem ^^ ich habe eine form und auf dieser befinden sich ca 30 label... ich will auf die label eine art rolloverefekt haben und en bissl was anderes... und hab nicht unbedingt lust für jedes label ne prozedur zu machen ^^ es soll quasi auf der form bei mousemove eine prozedur rein die prüft ob meine maus über einem label ist und wenn ja, dann brauche ich den name des labels. ist das einfach möglich? oder ist das mit anderen componenten einfacher? wie statictext oder so... |
Re: Label unter Mausposition
So müsste es gehen:
Delphi-Quellcode:
Einfach jedes Label mit dieser Procedure im OnMouseMove verlinken.
procedure TFormname.OnLabelMouseMove(Sender: TObject......);
var LabelName: String; begin LabelName := (Sender as TLabel).Name; end; Grüße Faux |
Re: Label unter Mausposition
Hi Lilo,
alternativ kannst du bei den TLabel-Komponenten auch mit OnMouseEnter() und OnMouseLeave() arbeiten - je nachdem was du vorhast. Grüße vom marabu |
Re: Label unter Mausposition
Mir ist noch eingefallen, du du mit dem namen nicht viel machen kannst (außer mit der API-FUnktion FindComponent weiter arbeiten). Es wäre sinnvoller wenn du gleich auf die Eigenschaft die du verändern willst (oder auf die Procedure, etc.) zugreifst. Also zB
Delphi-Quellcode:
(Sender as TLabel).Color := clGreen;
|
Re: Label unter Mausposition
Delphi-Quellcode:
Gruß Hagen
procedure TForm1.MouseMove();
var C: TControl; begin C := Controls.FindDragTarget(ClientToScreen(Point(X, Y)), True); if C is TLabel then begin end; end; |
Re: Label unter Mausposition
Zitat:
die varianten von oben sind nicht gut da ich dann wieder auf jedes label ne prozedur machen muss ^^ ich will quasi über eine prozedure das verhalten von 30 labels koordinieren ^^ |
Re: Label unter Mausposition
@Lilo
die methode von faux ist aber genau das, was du suchst. diese EINE procedure wird jedem Label zugeordnet und fertig. über den Sender kannste dann den namen bekommen. wie oben beschrieben
Delphi-Quellcode:
wobei ich es immer so mache (geschmackssache):
(Sender as TLabel).Name
Delphi-Quellcode:
TLabel(Sender).Name;
MfG |
Re: Label unter Mausposition
wieso "QControls" ? davon war nie die rede das du unter Kylix entwickelst, hast du mal die Hilfe bemüht ??
Wichtig ist noch eines: FindDragTarget() findet ALLE Controls der gesamten Anwendung, also auch diejenigen die sich in anderen Forms befinden. Du solltest also mit
Delphi-Quellcode:
sicherstellen das du nur die Labels des Forms ansprichst.
if (C is TLabel) and (C.Owner = Self) then
Gruß Hagen |
Re: Label unter Mausposition
Wo liegt eigentlich der Unterschied zwischen Hagens und meiner Methode?
|
Re: Label unter Mausposition
@faux.
also ich denke mal, Hagen sucht über die MouseMove Funktion des Formulars, oder? :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz