MDI - Form dynamisch aufrufen über "Strings"?
-
Hallo zusammen,
gib es die möglichkeit die Namen von Forms aus einer Datei oder DB auszulesen und so aufzurufen?also Beispielweise steht in der DB
Tbsp2
Tbsp3mit dem Code
Tbsp2* bsp = new Tbsp2 (this)
komme ich da logischerweise nicht weiter
Mfg Ulf87
-
push
-
Das geht, da der Konstruktor von TComponent virtuell ist. Allerdings gibt es keine Möglichkeit, in C++-Code virtuelle Konstruktoren direkt aufzurufen; auch gibt es keine Metaklassenhierarchie wie in Delphi.
Um das Problem zu lösen, kannst du folgende Delphi-Unit zu deinem Projekt hinzufügen und die vom Compiler generierte .hpp-Datei einbinden:unit ComponentUtils; interface uses Classes; function CreateComponent (AClass: TComponentClass; AOwner: TComponent): TComponent; implementation function CreateComponent (AClass: TComponentClass; AOwner: TComponent): TComponent; begin Result := AClass.Create (AOwner); end; end.
Der für das Auffinden des Formulares benötigte Mechanismus steht mit RegisterClass() und FindClass() zur Verfügung.
-
Cool danke werde ich morgen mal testen