Einzelnen Beitrag anzeigen

Levitan

Registriert seit: 10. Nov 2017
6 Beiträge
 
#1

Instanziierung von Interfaces

  Alt 25. Nov 2017, 08:06
Hallo zusammen,

Ich würde gerne Ein Interface dynamisch instanziieren. Damit meine ich: Der zu instanzierende Klassentyp kommt als String aus einer eigenen Customizing Tabelle.

Folgende Variante ist mir geläufig:
Ein Case Block mit "1 : mo_Irgend_ein_Interface := TCL_Irgendeine_Implementierende_Klasse.Create" ist eine statische Geschichte die für
mich nicht zielführend ist, (wenn es sich irgendwie vermeiden lässt).
Warum?: Weil jedesmal wenn ich eine weitere implementierende Klasse anlege, muss ich den CASE Block erweitern.

Gibt es in Delphi (Version?) eine Möglichkeit diese Instanziierung über einen String zu bewerkstelligen?
Dies wäre eine viel bessere Möglichkeit. z.B:

VAR
lo_IFC : TIF_Irgend_Ein_Interface
lv_Klassen_Name : String;

lv_Klassen_Name := 'TCL_Implementierende_Klasse_A';
lo_IFC := ( lv_Klassen_Name ).Create // <- Hier ist kein Case Block notwendig. NUR, leider funktioniert dies nicht in Delphi.

Ich habe es auch schon mit TYPE OF versucht, aber keine Chance.

Was mache ich Falsch, bzw. geht es überhaupt und wenn ja, wie ?


Gruß
Levitan
  Mit Zitat antworten Zitat