Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: tObject erstellen mittels tClass?

  Alt 11. Mai 2007, 16:05
Zitat von Arthur Hoornweg:
Mein Problem: Der Constructor vom Objekt wird nicht
aufgerufen. Selbst nicht, wenn er virtuell ist.
Wie bekomme ich das hin?
Hi Arthur

TClass an sich hilft dir nicht viel weiter. Gerade weil der Konstruktor von TObject nicht virtuell ist.
Du musst dir also eine neue Basisklasse aussuchen und der einen virtuellen Konstruktor verpassen:
Delphi-Quellcode:
type
  TBaseClass = class
  public
    constructor Create; virtual; abstract;
  end;
  TBaseClassClass = class of TBaseClass;
Delphi-Quellcode:
var
  classRef : TBaseClassClass;
  
begin

  classRef := ...
  
  result := classRef.Create();
...und nun sollte auch der Konstruktor aufgerufen werden.

Die Alternative wäre AfterConstruction für den Initialisierungs code herzunehmen. Dadurch bist du nicht auf einen bestimmten Konstruktor angewiesen und auch der von TClass/TObject würde reichen.

btw: Ich hab' deinen Namen irgendwo schon einmal gesehen, wahrscheinlich non-tech, right?
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat