Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

Sir Rufo 25. Sep 2012 13:48

AW: Form aus String erstellen
 
Das funktioniert nicht nur mit globalen Variablen, aber es muss halt entsprechend programmiert sein, damit es ohne funktioniert.

Globale Variablen sind zwar ein sehr einfacher aber auch ein sehr anfälliger Weg. Darum wird dieser idR auch nicht beschritten - öh sollte :)

Vielleicht kannst du ja mal schildern, was du genau erreichen willst, dann kann man da schon eher etwas zu sagen, wie man die Dynamik ohne globale Falle realisiert

Medium 25. Sep 2012 14:21

AW: Form aus String erstellen
 
Zitat:

Zitat von HolgerCW (Beitrag 1184362)
Ich kann ja nicht einfach aus FM_Material -> MeineForm machen etc.

Warum?

HolgerCW 26. Sep 2012 06:58

AW: Form aus String erstellen
 
Hier nochmal was ich eigentlich will:

Ich habe eine TreeView-Baumstruktur.

Wenn der User nun auf node1 klickt soll die FormAB erstellt werden.
Klickt der User auf node2 soll die FormCD erstellt werden.
Ich möchte aber nicht in dem Ereignis des TreeViews fest einprogrammieren, welche Form erstellt werden soll, sondern hinterlege die Information in einer Datenbank.

Soll heißen. Der User klickt auf node1, es wird in der Datenbank nachgeschaut welche Form geöffnet werden soll. (Dort steht der Name der Form) und dementsprechend wird dann die Form erstellt.

Die Formen habe ich aber alle schon in Delphi designed.

Nun soll die Form mit Hilfe des Formnamens erstellt werden.

Nur sind auch die Programmierungen, welche auf die FormAB etc. zugreifen schon erstellt. Heisst es steht überall FormAB.Label1.Caption := 'Text'

Wenn ich die FormAB, aber wie in diesem Thema erstelle, kann ich nicht mehr mit FormAB.Label1.Caption die Form steuern.

Was muss ich abändern, damit es klappen kann ?

Gruss

Holger

Bummi 26. Sep 2012 07:46

AW: Form aus String erstellen
 
Als Schmuddelnötlösung könntest Du in den Construktoren Deiner Forms etwas in der Art einbauen.

Delphi-Quellcode:
Constructor TFormA.Create(AOwner:TComponent); // override
begin
  inherited;
  FormA := Self;
end;

DeddyH 26. Sep 2012 08:35

AW: Form aus String erstellen
 
Oder die benannten Instanzen eliminieren und Dir eine Methode schreiben, die je nach Formklasse die Einstellungen vornimmt.

HolgerCW 26. Sep 2012 08:54

AW: Form aus String erstellen
 
Schmuddelnötlösung funktioniert.

Jetzte würde ich gerne hier noch die Registrierung so hinbekommen, das ich dies nicht fest vorbelegen muss ? Geht das ? Hier der Code:

Code:
var
 Form_Name: String;
 MeineForm: TForm;
 MeineForm_Klasse: TComponentClass;
begin

...

Form_Name := 'FM_Material' //Beispiel

RegisterClass(TFM_Material); //Das hier würde ich gerne variabel gestalten
MeineForm_Klasse := TComponentClass(FindClass('T' + Form_Name));
MeineForm := TForm(FindComponent(Form_Name));
If MeineForm = nil then Application.CreateForm(MeineForm_Klasse, MeineForm);
MeineForm.Show;
Gruss

Holger

Medium 26. Sep 2012 08:59

AW: Form aus String erstellen
 
Edit: Unfug gelöscht, hab die Create-Situation nicht beachtet.

HolgerCW 26. Sep 2012 09:19

AW: Form aus String erstellen
 
Jemand noch eine Idee ?

vagtler 26. Sep 2012 09:36

AW: Form aus String erstellen
 
Zitat:

Zitat von HolgerCW (Beitrag 1184470)
[...] Nur sind auch die Programmierungen, welche auf die FormAB etc. zugreifen schon erstellt. Heisst es steht überall FormAB.Label1.Caption := 'Text' [...]

Und hier zeigt sich wieder einmal ganz besonders eindrucksvoll, was passiert, wenn man zuerst programmiert und dann nachdenkt.

Ein Haus wird auch erst geplant und dann gebaut...

HolgerCW 26. Sep 2012 13:20

AW: Form aus String erstellen
 
Das hilft mir jetz auch nicht weiter.

Es klappt schon, nur mit der Registrierung gefällt mir noch nicht. Wüsste auch nicht was ich ohne vorherige Programmierung da hätte besser machen können bei der Registrierung.

Weitere Ideen willkommen, zwecks der variablen Registrierung ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 3 von 4     123 4      

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