AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Instanziierung von Interfaces

Ein Thema von Levitan · begonnen am 25. Nov 2017 · letzter Beitrag vom 26. Nov 2017
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 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-2025 by Thomas Breitkreuz