Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Beitrag von 400kmh »

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?

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Beitrag von theo »

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;

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Beitrag von felix96 »

Was bewirkt die Eigenschaft Parent, Button1.parent
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Beitrag von theo »

felix96 hat geschrieben:Was bewirkt die Eigenschaft Parent, Button1.parent


Das setzt die Elternkomponente, d.h. dort wird das Control drauf platziert.
Wenn die Angabe fehlt, sieht man das Control nicht, weil sie kein Zuhause hat.

400kmh
Beiträge: 100
Registriert: Do 25. Mär 2010, 04:03

Re: Prozeduren mit Ereignissen per Code erzeugter Obj. verbinden

Beitrag von 400kmh »

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;

Danke.

Antworten