AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit 1 ?
Thema durchsuchen
Ansicht
Themen-Optionen

Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit 1 ?

Ein Thema von torf160 · begonnen am 20. Dez 2009 · letzter Beitrag vom 21. Dez 2009
Antwort Antwort
torf160

Registriert seit: 20. Sep 2006
Ort: Bad Oldesloe
24 Beiträge
 
Delphi 3 Professional
 
#1

Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit 1 ?

  Alt 20. Dez 2009, 18:23
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
Thomas Hamdorf
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit

  Alt 20. Dez 2009, 18:44
Zitat:
Das ganze Formular an eine Prozedur zu übergeben ist mir nicht gelungen.
Da wäre Interessant wie du es versucht hast und was genau dabei schief gegangen ist denn im Grunde genommen ist die einfachste Variante genau diese.

Delphi-Quellcode:
procedure erstelle_komponenten_auf_form(AForm: TCustomForm);
begin
  // Komponenten erzeugen mit AForm als Parent und Owner
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
torf160

Registriert seit: 20. Sep 2006
Ort: Bad Oldesloe
24 Beiträge
 
Delphi 3 Professional
 
#3

Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit

  Alt 21. Dez 2009, 14:33
Suuuper, so funktioniert es.

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:
procedure erstelle_komponenten_auf_form(var Form2: TForm);
begin
  // Komponenten erzeugen
end;
Der Aufruf erfolgte dann aus Form1.

Vielen Dank für die schnelle Hilfe.

torf160
Thomas Hamdorf
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit

  Alt 21. Dez 2009, 14:38
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?
$2B or not $2B
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Komponenten zur Laufzeit erzeugen - auf 4 Formularen mit

  Alt 21. Dez 2009, 16:34
Zitat von himitsu:
Wenn du auf 4 Forms die selben Komponenten hast, warum dann nicht nur eine Form 4-mal verwenden?
Das geht zumindest in die richtige Richtung. Er geht aber besser noch einen Schritt weiter und lässt 4 Forms eben 4 Forms sein und auch das Gefummele mit Parent,Owner etc. weg. Solche Geschichten macht man besser mit einem Musterformular. Dieses kriegt das richtige FormCreate und alles was gemeinsam sonst noch gebraucht wird. Farben, Schriftarten, bei Maus und Tastatur macht es auch keinen Sinn das überall anders zu handhaben. Von diesem Musterformular soll er sich dann die 4 anderen ableiten und fertig. Sollte es nötig werden irgendeine Eigenschaft in allen 4 oder später noch mehr Formularen zu ändern, dann muss lediglich dieses Musterformular geändert werden. Und er hätte es auch für andere Programme immer zur Verfügung.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 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