Einzelnen Beitrag anzeigen

st2000

Registriert seit: 23. Apr 2003
Ort: Hamburg
52 Beiträge
 
Delphi 5 Enterprise
 
#1

'TMyForm' nach TMyForm casten ? ("lebendig" werden

  Alt 30. Sep 2003, 17:50
Hallo,

hier mal eine gaaanz verwegene Frage : (ist vermutlich Unsinn, aber wer weiss...)

Ich würde gern eine Function schreiben, welche den NAMEN eines Formulartyps TMyForm1, TMyForm2, usw.
als String übergeben bekommt, und die dann aus dem tatsächlich als Klasse definierten TMyForm1 eine Instanz created (die von mir gesuchte Funktion nenne ich mal StrToClass):

Delphi-Quellcode:
Function FormAufruf (Formtyp: String): TForm;
Begin

Result:=StrToClass(FormTyp).Create(Application);

end;
In der aufrufenden Procedure könnte ich das dann weiternutzen :

Delphi-Quellcode:
Procedure Formbenutzen;
var
BenutzForm: TForm;
BenutzFormName: String;

Begin
BenutzFormName:='TMyForm1';

Benutzform:=FormAufruf(BenutzFormName);

BenutzForm.Showmodal;

BenutzForm.Free;

End;
Wäre ja quasi ein Pinocchio-Effekt : Aus einem 'hölzernen' String wird ein 'lebendiges' Formular.
Nicht anvisiert ist hier eine CASE-Struktur, die alle vorhandenen TMyForm? abfragt, und in der auch alle vorhandenen Typen vorher eingetragen werden sollen...

Hat jemand sowas schon mal gemacht ? Gibts da eine Funktion ? Ist das etwa was triviales, was ich nur einfach nicht kenne ?
Oder ist es schlicht unmöglich ?

In der OH oder in DP habe ich mit den dollsten Suchbegriffen nix gefunden....

Bin für jeden Tip dankbar, da ich sonst einen MeGa-Case schreiben darf.....

Viele Grüsse,
ST2000
Stefan
Keine Softwarepatente ! Die Polen = wahre Freiheitskämpfer !!! Gerade noch rechtzeitig Mitglied geworden, um die Notbremse zu ziehen. Year !!!
  Mit Zitat antworten Zitat