Hallo,
wie schafft man es, Clicks auf durch Befehle im Code erzeugte Objekte Prozeduren zuzuweisen?
Wenn bei manuell erzeugten Objekten, lässt sich dies ja durch den Objektinspektor regeln. Durch Befehle im Code erzeugte Objekte finden sich jedoch nicht im Objektinspektor. Daher meine Frage: Wie funktioniert es stattdessen?
Wenn man durch den Code z. B. einen Button erstellt, wie schafft man es, dass durch einen Klick auf diesen Button, dann auch eine dafür vorgesehene Prozedur abläuft?
Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden
Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden
Ich verstehe deine Frage zwar möglicherweise nicht ganz, aber wenn du meinst, wie man zur Laufzeit Ereignisse einhängen kann, dann geht das (minimalistisch) so:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
MyButton:=TButton.Create(self);
MyButton.Parent:=self;
MyButton.OnClick:=@MyButtonClick;
end;
procedure TForm1.MyButtonClick(Sender: TObject);
begin
ShowMessage('Ja');
end;
Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden
Was bewirkt die Eigenschaft Parent, Button1.parent
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!
it´s not a bug, it´s a feature!
Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden
Das setzt die Elternkomponente, d.h. dort wird das Control drauf platziert.felix96 hat geschrieben:Was bewirkt die Eigenschaft Parent, Button1.parent
Wenn die Angabe fehlt, sieht man das Control nicht, weil sie kein Zuhause hat.
Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden
Danke.theo hat geschrieben:Ich verstehe deine Frage zwar möglicherweise nicht ganz, aber wenn du meinst, wie man zur Laufzeit Ereignisse einhängen kann, dann geht das (minimalistisch) so:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject); begin MyButton:=TButton.Create(self); MyButton.Parent:=self; MyButton.OnClick:=@MyButtonClick; end; procedure TForm1.MyButtonClick(Sender: TObject); begin ShowMessage('Ja'); end;