Hallo,
Haben alle Objekte die du so erzeugst eine gemeinsame Oberklasse?
Wenn ja, dann muss die Oberklasse einen virtuellen Konstruktor besitzen, den die abgeleiteten Klassen überschreiben.
Ungefähr so:
Delphi-Quellcode:
type
TOberklasse = class
constructor Create(Bla: String); virtual;
end;
TUnterklasse1 = class(TOberklasse)
constructor Create(Bla: String); override;
end;
TUnterklasse2 = class(TUnterklasse)
constructor Create(Bla: String); override;
end;
TOberKlasseClass = class of TOberklasse;
implementation
class function CreateClassReference(const AClassName: string; var AClassInstance): Boolean;
var
ClassObj: TObject absolute AClassInstance;
ClassRef: TOberKlasseClass;
begin
ClassObj := nil;
// Klassenreferenz laden
ClassRef := TOberKlasseClass(GetClass(AClassName));
if Assigned(ClassRef) then
begin
if ClassRef.InheritsFrom(TOberKlasseClass) then
begin
ClassObj := ClassRef.Create('123');
end;
end;
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."