Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dynamisch erstellte Komponenten: auf Ereignisse reagieren (https://www.delphipraxis.net/30015-dynamisch-erstellte-komponenten-auf-ereignisse-reagieren.html)

Pseudemys Nelsoni 18. Sep 2004 13:06


Dynamisch erstellte Komponenten: auf Ereignisse reagieren
 
hi, wenn ich eine kompo auf die frm ziehe habe ich ja immer direkt alle Ereignisse im OI, wie ist es aber wenn ich sie dynamisch erstelle? wie erstell ich die dann?

Bernhard Geyer 18. Sep 2004 13:09

Re: Dynamisch erstellte Komponenten: auf Ereignisse reagiere
 
Einfach das was die IDE macht per Hand nachstellen (Hier für Click-Ereignis von TButton):

1, Erstellen eine Methode mit richtiger Signatur erstellen (+ Implementierung)
Delphi-Quellcode:
procedure MyButtonClick(Sender: TObject);
2, Hinzufügen der Methoden zu Eventhandler
Delphi-Quellcode:
MyButton := TButton.Create(self);
MyButton.OnClick := MyButtonClick;
... (Sonstige Properties setzen)

Dax 18. Sep 2004 13:10

Re: Dynamisch erstellte Komponenten: auf Ereignisse reagiere
 
Wenn du auf Ereignisse von dyn. erstellten Komponenten reagieren willst, musst du schon während dem Designen der App wissen, auf welche Ereignisse die Komponenten reagieren sollen und die Verarbeitungroutinen im voraus schreiben.

[edit]Hab' wenigstens Silber geholt.[/edit]

alcaeus 18. Sep 2004 13:10

Re: Dynamisch erstellte Komponenten: auf Ereignisse reagiere
 
Hi,

schreib eine Routine wie z.B.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
//mach was
end;
und weise sie anschließend dem OnClick-Ereignis zu:
Delphi-Quellcode:
Button1.OnClick := Button1Click;
Bemüh aber mal die Suche, das hatten wir mehr als nur ein mal.

Greetz
alcaeus

PS: Die Routine musst du aber schon zur Entwicklungszeit schreiben ;)

[add]Ich war zu langsam :( ;)[/add]

Pseudemys Nelsoni 18. Sep 2004 13:12

Re: Dynamisch erstellte Komponenten: auf Ereignisse reagiere
 
danke leute, das ging aber schnell <g>


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 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