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.