Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Klassen per GetClass() dynamisch erzeugen

  Alt 18. Mai 2011, 15:55
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."
  Mit Zitat antworten Zitat