Delphi-PRAXiS

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-Prozeduren von zur Laufzeit erstellten Objekten (https://www.delphipraxis.net/146644-onmousemove-prozeduren-von-zur-laufzeit-erstellten-objekten.html)

Samufi 24. Jan 2010 11:34


OnMouseMove-Prozeduren von zur Laufzeit erstellten Objekten
 
Hallo,
ich habe ein analoges Problem zu folgendem: Angenommen ich wollte zur Laufzeit Labels erstellen, die bei OnMouseMove ihre Schriftgröße verändern, so müsste ich diesen neuen Labels ja in der Eigenschaft OnMousemove eine Prozedur zuordnen, die die Schriftgröße des Labels verändert. Wie ist das aber möglich, wenn die Labels erst zur Laufzeit entstanden sind - wie schaffe ich, dass genau die Schriftgröße von dem mit der Maus überfahrenen Label geändert wird? Falls das noch etwas unklar erscheint präzisiere ich meine Ausführungen gerne noch mal!
Herzlichen Dank schon mal fürs Lesen!
Treurgebenst,
Samufi

fkerber 24. Jan 2010 11:38

Re: OnMouseMove-Prozeduren von zur Laufzeit erstellten Objek
 
Hi!

Du brauchst eine "universelle" Methode für das MouseMove - die weist du dann jedem neuen Label zu.
Wird sie aufegrufen steckt im Parameter Sender das Control drin, dass den Aufruf ausgelöst hat.


Grüße, Frederic

Luckie 24. Jan 2010 11:39

Re: OnMouseMove-Prozeduren von zur Laufzeit erstellten Objek
 
Du kannst auch Eigenschaften und Ereignisse zur Laufzeit zuweisen. Schreib dir eine passende Methode und weiß sie zur Laufzeit dem entsprechenden Ereignis zu.

Samufi 24. Jan 2010 12:22

Re: OnMouseMove-Prozeduren von zur Laufzeit erstellten Objek
 
Vielen Dank für die Antworten erst mal!
Dass ich Eigenschaften zur Laufzeit zuweisen kann ist mir im Grunde schon klar - was mir fehlt ist diese universelle Methode. Dass man da etwas mit dem Parameter Sender machen kann habe ich mir schon gedacht. Aber wie genau geht das. Angenommen ich wollte wie im Beispiel die Schriftgröße von einem Label vergrößern:
Delphi-Quellcode:
procedure TForm1.LabelMouseMove(Sender: TObject);
var Label1:TLabel;
begin
Label1:=Sender;
Label1.Font.Size:=Label.Font.Siz+2;
end;
Ich weiß - so funktioniert das auf keinen Fall. Aber wie müsste das dann richtig aussehen?

fkerber 24. Jan 2010 12:31

Re: OnMouseMove-Prozeduren von zur Laufzeit erstellten Objek
 
Hi!

In der Art könntest du es machen:

Delphi-Quellcode:
with (Sender as TLabel) do
 font.Size:=40;

Grüße, Frederic

Samufi 24. Jan 2010 12:46

Re: OnMouseMove-Prozeduren von zur Laufzeit erstellten Objek
 
Vielen Dank! :dp:
Es funktioniert alles wie gewünscht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.

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