Einzelnen Beitrag anzeigen

Stefan1286b

Registriert seit: 6. Jan 2012
Ort: Dinklage
25 Beiträge
 
Delphi 11 Alexandria
 
#1

Constructor from Instance

  Alt 15. Jan 2024, 07:55
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.
  Mit Zitat antworten Zitat