![]() |
Re: Label-Position auswerten
Liste der Anhänge anzeigen (Anzahl: 1)
moin,
ich weiß zwar nicht genau, worum es geht, poste aber trotzdem mal. |
Re: Label-Position auswerten
Die Vorschläge haben bisher nicht viel genützt :
Delphi-Quellcode:
Egal, was ich mache : nur der else-Zweig wird durchlaufen. Ergo : im ControlAtPos ist ein Fehler.
procedure Tfrm.FormMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); begin // inherited; i := i + 1; if ControlAtPos(Point (x,y),true,true) is TLabel then Memo1.Lines.Add (IntToStr (i)+' Label') else Memo1.Lines.Add (IntToStr (i)+' kein Label') end; |
Re: Label-Position auswerten
Liste der Anhänge anzeigen (Anzahl: 1)
Nimm den Vorschlag von marabu. Jedem Label weist du dann im OI die selbe Procedure zu und jedes Label wird dir sagen wo es ist. ;)
|
Re: Label-Position auswerten
Hallo,
das Event "Tfrm.FormMouseMove" wird ja nur ausgelöst, wenn du dich mit der Maus direkt auf der Form bewegst. Bewegst du aber die Maus auf ein Label, bist du nicht mehr direkt auf der Form, sondern eben auf diesem Label und nun wird dort (auf diesem Label) das Event "OnMouseMove" ausgelöst. Ich hab einfach mal folgendes gemacht:
Delphi-Quellcode:
Bin ich mit der Maus auf der Form bekomm ich "kein Label". Bin ich aber mit der Maus auf dem Label2, dann erhalt ich "LABEL".
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin // inherited; i := i + 1; if ControlAtPos(Point (x,y),true,true) is TLabel then Memo1.Lines.Add (IntToStr (i)+' Label') else Memo1.Lines.Add (IntToStr (i)+' kein Label') end; procedure TForm1.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Memo1.Lines.Add('LABEL'); end; |
Re: Label-Position auswerten
Helmi, das war schon mal richtig so. :-D Allerdings wird das Event 2mal ausgelöst. Das läßt sich aber leicht so beseitigen (inspired by Ch. Seehase) :
Delphi-Quellcode:
Mal sehen, ob ich das MouseLeave auch noch brauche. Allerdings wäre es noch gut, wenn einer wüßte, wie ich dieses Verhalten ALLEN Labels beibringe.
procedure Tfrm.lblMouseEnter(Sender: TObject);
begin inherited; // if ControlAtPos(Point (x,y),true,true) is TLabel then showmessage ('Label'); end; |
Re: Label-Position auswerten
Wenn du es nicht per Hand machen willst, musst du eben am Anfang des Programms durch Components der Form iterieren und jedem Label die Prozedur zuweisen.
|
Re: Label-Position auswerten
Wieso kriege ich hier :
Delphi-Quellcode:
zwar den Font geändert, die Hintergrundfarbe aber nicht ?
TLabel (FindComponent (lblKomp.Name)).Canvas.Brush.Color := clRed;
TLabel (FindComponent (lblKomp.Name)).Font.Color := clBlue; |
Re: Label-Position auswerten
neue frage neuer thread? :mrgreen:
schon pen.color getestet? |
Re: Label-Position auswerten
Zitat:
|
Re: Label-Position auswerten
Zitat:
Hier mach ich erstmal zu. Greetz alcaeus *** LOCKED *** |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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