Guten Tag.
Weiß jemand wie man einen Constructor von einer Instanz aufruft?
Zum verstehen eine Kleines Beispiel:
Code:
type
TAnimal = class
public
Name:String;
end;
TDog = class(TAnimal)
public
Hairs:Integer;
end;
TCat = class(Tanimal)
public
Color:Integer;
end;
var
Animal1,Animal2:TAnimal;
begin
Animal1 := TDog.Create;
//Some Code
Animal2 := Animal1.Create; // << Das funktioniert nicht. Animal1 wird überschrieben.
Animal2 := Animal1.Class.Create; // << Auch das funktioniert nicht. Wird dann ein TObject.
Die eigentliche Klasse ist von TPersistent abgeleitet und hat schon funktionstüchtig AssignTo mittels
RTTI implementiert.
Und gelegentlich muss ich von einer Instanz erstellen.
Ich an folgendes gedacht:
Code:
type
TAnimal = class
public
Name:String;
procedure New:TAnimal; virtual; abstract;
end;
TDog = class(TAnimal)
public
Hairs:Integer;
procedure New:TAnimal; override;
end;
TCat = class(Tanimal)
public
Color:Integer;
procedure New:TAnimal; override;
end;
procedure TDogNew:TAnimal;
begin
Result := TDog.Create;
end;
var
Animal1,Animal2:TAnimal;
begin
Animal1 := TDog.Create;
//Some Code
Animal2 := Animal1.New;
Aber denke das geht vielleicht auch einfacher.
Vielen Dank im vorraus.