Mal eine Frage, warum ist dein TEnemy denn ein Nachfahre von TComponent? Das wurde dir ja nur empfohlen, damit du den TImage was übergeben kannst. Oder übersehe ich da was?
Ansonsten einfach standardmäßig von TObject erben (bzw. "gar nicht" erben was ja implizit von TObject erbt).
Außerdem, würde ich den Konstruktor nicht überschreiben ohne das den Code hinzuweisen (mit override). Das geht aber nur, wenn der Konstruktor gleich bleibt.
Wenn du das stattdessen dennoch in einen Einzeiler machen willst, dann würde ich das so machen:
Delphi-Quellcode:
type
TBlub = class(TParent)
private
f : Integer;
public
function Init(foo : Integer) : TBlub;
end;
function TBlub.Init(foo : Integer) : TBlub;
begin
f := foo;
Result := Self;
end;
Statt:
Delphi-Quellcode:
type
TBlub = class(TParent)
private
f : Integer;
public
constructor Create(foo : Integer);
end;
constructor TBlub.Create(foo : Integer);
begin
inherited Create;
f := foo;
end;
Das sieht dann besser aus, anstatt den Konstruktor zu überdecken.
MfG
Fabian