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 |
AW: Form aus String erstellen
Zitat:
|
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 |
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; |
AW: Form aus String erstellen
Oder die benannten Instanzen eliminieren und Dir eine Methode schreiben, die je nach Formklasse die Einstellungen vornimmt.
|
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:
Gruss
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; Holger |
AW: Form aus String erstellen
Edit: Unfug gelöscht, hab die Create-Situation nicht beachtet.
|
AW: Form aus String erstellen
Jemand noch eine Idee ?
|
AW: Form aus String erstellen
Zitat:
Ein Haus wird auch erst geplant und dann gebaut... |
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. |
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