![]() |
Delphi-Version: 2006
Form aus String erstellen
Hallo zusammen,
habe zwei Formen als *.pas - Datei erstellt. Jetzt möchte ich diese erstellen lassen, wenn in einer String-Variable der Name der entsprechenden Form steht. Folgendes habe ich schon erstellt:
Code:
Wie kann ich die richtige Klasse der Form bei den Fragezeichen einfügen ?
var
Form_Name: String; MeineForm: TForm; If Form_Name <> '' then begin MeineForm := TForm(Form_Name); If MeineForm = nil then Application.CreateForm(???, MeineForm); MeineForm.Show; end; Gruss Holger |
AW: Form aus String erstellen
Stichwort
![]() |
AW: Form aus String erstellen
Hallo,
danke für die schnelle Antwort, aber kannst mir ein bisschen mehr helfen ... Gruss Holger |
AW: Form aus String erstellen
|
AW: Form aus String erstellen
Danke,
aber wo kommt denn dieses "initialization" im Delphi-Code hin ? Gruss Holger |
AW: Form aus String erstellen
Die Begriffe
![]() |
AW: Form aus String erstellen
Wer macht den sowas? :shock:
Am Ende rätst du ihm noch, dass er die Doku liest. :wink: |
AW: Form aus String erstellen
Wenn ich initialization unter die uses packke kommt eine Fehlermeldung . erwartet, aber ; erhalten ...
|
AW: Form aus String erstellen
Habe jetzt folgenden Code zusammengebaut:
Code:
Wenn ich aber nun im FormClose-Ereignis der Form folgenden Code hinterlege:
var
Form_Name, DatMod_Name: String; MeineForm: TForm; MeineForm_Klasse: TComponentClass; begin Form_Name := 'FM_Material'; //Als Beispiel RegisterClass(TFM_Material); MeineForm_Klasse := TComponentClass(FindClass('T' + Form_Name)); MeineForm := TForm(FindComponent(Form_Name)); If MeineForm = nil then Application.CreateForm(MeineForm_Klasse, MeineForm); MeineForm.Show;
Code:
reagiert das nicht mehr. Was ist zu tuen?FreeandNil(FM_Material); P.S: Eigentlich wollte ich ohne so eine Registrierung auskommen. Damit das voll dynamisch ist. Dann kann ich auch gleich folgendes machen:
Code:
If MeineForm = nil then Application.CreateForm(TFM_Material, FM_Material); |
AW: Form aus String erstellen
Vielleicht mal die Variable mit der Instanz übergeben?
upps, das ist ja noch schlimmer als gedacht. Im OnClose gibt es einen Parameter den man mit caFree bestücken kann. Allerdings weiß die Form-Instanz ja nicht in welcher Instanz-Variablen du die überall gespeichert hast und kann daher diese auch nicht auf nil setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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