Einzelnen Beitrag anzeigen

Pascal P

Registriert seit: 16. Nov 2007
14 Beiträge
 
#16

Re: Objekt anhand der Klassenbezeichnung erzeugen

  Alt 20. Jun 2008, 17:23
Irgendwie muss ich grad voll ends auf dem Schlauch stehen. Habe mal eben die Änderung mit virtual gemacht. gehen tut es aber noch immer nciht.
Mein Programmcode sieht nun in etwa so aus.

Delphi-Quellcode:
TBaseObjekt = class (TPersistent)
public
    strName : String;
    constructor Create; virtual;
end;

TBaseObjectClass = class of TBaseObject;

TExtendedObjekt = class (TBaseObjekt)
public
    constructor Create;
end;

constructor TBaseObjekt.Create;
begin
  Self.strName := 'Base';
end;

constructor TExtendedObjekt.Create;
begin
  Self.strName := 'Extendet';
end;

procedure Test();
var
    cls : TPersistentClass;
    obj : TBaseObject;
begin
    // Klassenreferenz ermitteln
    cls := FindClass('TExtendedObjekt');
    // Objekt-Instanz erzeugen
    obj := TBaseObjectClass( cls ).Create();
    // Test-Ausgabe
    ShowMessage(TExtendedObjekt(obj).strName);
    // Die Ausgabe sollte dann Base sein
end;
Funktionieren tut es noch immer wie davor. Es wird der Constructor der Basisklasse verwendet und nicht der der eigentlichen Klasse.
  Mit Zitat antworten Zitat