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
 
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.691 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Instanziierung von Interfaces

  Alt 25. Nov 2017, 09:44
Ich würde gerne Ein Interface dynamisch instanziieren. Damit meine ich: Der zu instanzierende Klassentyp kommt als String aus einer eigenen Customizing Tabelle.
Eine Möglichkeit wäre, dass sich alle Klassen, die ein Interface implementieren, irgendwo regstrieren, so dass eine Factory-Methode sie anhand des Namens instantiieren kann. In der Regel geschieht diese Registrierung durch einen Aufruf wie

Delphi-Quellcode:

ClassFactoryXY.RegisterClass('NameOfClass', TNameOfClass);
In meinem Code erfolgt die Registrierung meist in der Initialization Section der Unit, in der die Klasse deklariert wird.

Um diese Registrierungen zu speichern könnte man z.B. ein Dictionary anlegen, mit dem Namen der Klasse als Key und einem Class Pointer als Value. Ich benutze noch ein älteres Delphi, das TDictionary noch nicht kennt, und habe deshalb TStringList verwendet.

Die Instantiierung erfolgt dann duch einen Aufruf der ClassFactory wie diesen:

Delphi-Quellcode:

MyIntVariable := ClassFactoryXY.CreateInstance('NameOfClass');
Thomas Mueller
  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 22:55 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