Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form aus String erstellen (https://www.delphipraxis.net/170594-form-aus-string-erstellen.html)

HolgerCW 25. Sep 2012 10:24

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:
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;
Wie kann ich die richtige Klasse der Form bei den Fragezeichen einfügen ?

Gruss

Holger

vagtler 25. Sep 2012 10:28

AW: Form aus String erstellen
 
Stichwort Factory

HolgerCW 25. Sep 2012 10:30

AW: Form aus String erstellen
 
Hallo,

danke für die schnelle Antwort, aber kannst mir ein bisschen mehr helfen ...

Gruss

Holger

shmia 25. Sep 2012 10:48

AW: Form aus String erstellen
 
Kuck mal hier in der Code-Library
http://www.delphipraxis.net/20198-fo...-erzeugen.html

HolgerCW 25. Sep 2012 11:08

AW: Form aus String erstellen
 
Danke,

aber wo kommt denn dieses "initialization" im Delphi-Code hin ?

Gruss

Holger

vagtler 25. Sep 2012 11:17

AW: Form aus String erstellen
 
Die Begriffe delphi und initialization mal in Google einzutippen kommt Dir nicht in den Sinn?

mkinzler 25. Sep 2012 11:23

AW: Form aus String erstellen
 
Wer macht den sowas? :shock:
Am Ende rätst du ihm noch, dass er die Doku liest. :wink:

HolgerCW 25. Sep 2012 11:33

AW: Form aus String erstellen
 
Wenn ich initialization unter die uses packke kommt eine Fehlermeldung . erwartet, aber ; erhalten ...

HolgerCW 25. Sep 2012 12:04

AW: Form aus String erstellen
 
Habe jetzt folgenden Code zusammengebaut:

Code:
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;
Wenn ich aber nun im FormClose-Ereignis der Form folgenden Code hinterlege:

Code:

FreeandNil(FM_Material);
reagiert das nicht mehr. Was ist zu tuen?

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);

Sir Rufo 25. Sep 2012 12:06

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 06:54 Uhr.
Seite 1 von 4  1 23     Letzte »    

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