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?