Einzelnen Beitrag anzeigen

Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Zur Laufzeit erzeugte Klassen mit Parametern versorgen

  Alt 8. Mär 2012, 13:28
Etwa so?

Delphi-Quellcode:
type
  IMeineSchnittstelle = interface

  end;

  TMeineKlasse = class(TInterfacedObject, IMeineSchnittstelle)
  strict protected
    function GetValueAsString: String; virtual; abstract;

  public
    property ValueAsString: String read GetValueAsString;

    constructor Create(const ParamStr: String); virtual; abstract;
  end;

  TMeineKlasseClass = class of TMeineKlasse;

  TNativeIntNachkomme = class(TMeineKlasse)
  strict private
    FValue: NativeInt;

  strict protected
    function GetValueAsString: String; override;

  public
    constructor Create(const ParamStr: String); override;
  end;

  TStringNachkomme = class(TMeineKlasse)
  strict private
    FValue: String;

  strict protected
    function GetValueAsString: String; override;

  public
    constructor Create(const ParamStr: String); override;
  end;
Das erzeugen der Klasse ist eigentlich ganz einfach, solange man erst einmal die Klasse hat. Hier eine "Fabrikroutine":
Delphi-Quellcode:
function CreateMeineKlasse(const Cls: TMeineKlasseClass;
  const ParamStr: String): TMeineKlasse; overload;
begin
  Result := Cls.Create(ParamStr);
end;
Im Anhand findest Du eine Konsolenanwendung, die das demonstriert. Die Möglichkeit es über die Schnittstelle zu machen, nutze ich im Beispiel aber nicht.
Angehängte Dateien
Dateityp: pas Thema166980.dpr.pas (2,9 KB, 11x aufgerufen)
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat