![]() |
Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit 1 ?
Hallo, ich hoffe, ich habe mich mit meiner Frage für das richtige Forum entschieden.
Also: Ich habe eine Anwendung mit 1 Haupt-Formular und 4 weiteren Formularen. Auf den 4 weiteren Formularen möchte ich zur Laufzeit weitere Komponenten erzeugen. Ich habe das jetzt so realisiert, dass für jedes Formular ein entsprechendes OnCreate-Ereignis vorhanden ist. Das ist dann aber praktisch 4 x derselbe Code. Geht das nicht irgendwie eleganter? So, dass ich mit nur 1 Routine die Komponenten auf allen 4 Formularen erzeugen kann? Das wäre weniger Tipparbeit und Ändeerungen müsste ich nur noch an 1 Stelle durchführen. Das ganze Formular an eine Prozedur zu übergeben ist mir nicht gelungen. :-( Vielen Dank schon mal, für Eure Müühe. torf160 |
Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit
Zitat:
Delphi-Quellcode:
procedure erstelle_komponenten_auf_form(AForm: TCustomForm);
begin // Komponenten erzeugen mit AForm als Parent und Owner end; |
Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit
Suuuper, so funktioniert es. :-D
Ich bin nicht auf die Idee gekommen, die Prozedur aus dem Formular selbst aufzurufen, außerdem hatte ich noch ein "var" im Prozeduraufruf. Also etwa so:
Delphi-Quellcode:
Der Aufruf erfolgte dann aus Form1.
procedure erstelle_komponenten_auf_form(var Form2: TForm);
begin // Komponenten erzeugen end; Vielen Dank für die schnelle Hilfe. torf160 |
Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit
Das VAR ist nicht nötig, da du ja den Inhalt von Form2 ändern willst und nicht die Form2-Instanz selber.
'ne andere Frage: Wenn du auf 4 Forms die selben Komponenten hast, warum dann nicht nur eine Form 4-mal verwenden? |
Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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