Habe folgendes versucht:
Delphi-Quellcode:
TMain = class(TObject)
public
constructor create;
procedure init; virtual; abstract;
end;
TChild = class(TMain)
public
constructor Create;
procedure init; override;
end;
TFrame = class(TObject)
public
procedure Go(obj: TMain);
end;
var
Form1: TForm1;
c1: TChild; // c1 von Typ TChild
implementation
constructor TMain.create;
begin
inherited;
showMessage('Main');
end;
constructor TChild.Create;
begin
inherited;
showMessage('Child');
end;
procedure TChild.init;
begin
// inherited;
self.Create;
end;
procedure TFrame.Go(obj: TMain);
begin
obj := TMain.create;
obj.init;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TFrame.Create.Go(c1); // c1 ist von Typ TChild
end;
Mein Ziel ist den Konstruktor der Kind-Klasse aufzurufen ... aber ich weiss nicht wie ich dass machen kann,
dabei kann ich in TFrame nur Objekte von Typ Basisklasse verwenden.
Würde mich auf eine Antwort freuen
Danke