![]() |
TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Hi,
ich versuch mal zu erklären was ich gerne machen würde. Ich habe ein Programm mit einem Menü als Hauptfenster. Darin gibt es x Einträge die immer für eine Tabelle in einer Datenbank stehen. Das ganz läuft dynamisch. Es gibt also eine "MainForm" die alles notwendige enthält um die Informationen einer Tabelle der Datenbank anzuzeigen. Über eine Abfrage wird nun die Anzahl der Tabellen in der DB Abgefragt und je nach dem wie viele Tabellen da sind Einträge im Menü erstellt. Der Aufruf erfolgt in so fern dynamisch, dass die Form immer mit dem TabellenNamen erzeugt wird und in sich selbst dann die Captions usw. anpasst und die jeweiligen Daten darstellt. Ich habe also stand jetzt 20 Menüpunkte aber nur eine HauptMaske("TMainForm" - Ableitung von "TForm"). Was ich nun gern erreichen würde. Es gibt manche Tabellen wo die Maske einen leicht abweichenden Aufbau zum Standard haben soll. Ich leite mir also in der IDE eine neue Form "TTolleNeueForm" von "TMainForm" ab. Im Menu erstelle ich einen Punkt zum Aufruf händisch. Ich würde jetzt gerne erreichen das beim klick auf den händisch eingefügten Menü Punkt nicht die TMainForm created wird sondern die "TTolleNeueForm". Und das Dynmaisch, also zb. über getclass('T'+Tabellenname), die Forms würden nämlich jeweils wie die Tabellen heißen und über ein RegisterClass im initialize Teil kann ich das dann schön Programmweit abfragen ob es etwas gibt. Nur leider krieg ich das mit dem Create nicht hin. Ich hoffe es ist einigermaßen verständlich was ich vor habe. :oops: Grüße PJM |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Ich habe das mal schnell hingetippt ohne zu testen. Aber so in etwas würde ich das machen, wobei die Funtion GetMainFormClass die entsprechende Formclass ermitteln müsste.
Delphi-Quellcode:
type
TMainFormClass = class of TMainForm; ... var FC: TMainFormClass ; F: TMainForm; begin FC := GetMainFormClass(TableName); F := TC.Create(...); try .... F.ShowModal; finally F.Release; end; end; |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Und was funktioniert an
Delphi-Quellcode:
jetzt nicht?
GetClass('T' + Tabellenname)
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Entweder man kodiert das hart oder registriert in einer TList/TDictionary die Formualrtypen und durchsucht diese. Wenn man nichts findet, könnte es eine Standard geben. |
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
|
AW: TForm Klasse dynamisch erstellen ja nachdem ob Klasse vorhanden ist
Zitat:
Und über das Tpersistent bekomme ich es nicht gebacken... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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 by Thomas Breitkreuz