Meine Klasse sieht prinzipiell so aus. Hier schon mit dem Assign, wie ich es verstanden hätte
Delphi-Quellcode:
TMyBaseClass = class;
private
FID:Integer;
FName: String;
procedure SetID(const Value: Integer);
procedure SetName(const Value: String);
public
property ID: Integer read FID write SetID;
property Name: String read FName write SetName;
constructor Create;
destructor Destroy; override;
procedure Assign(aNewValue:TMyBaseClass);
function FunctionB1: String;
procedure ProcB1(sMsg: String);
end;
TMyClass = class(TMyBaseClass);
private
FInfo:String;
procedure SetInfo(const Value: String);
public
property Info: String read FInfo write SetInfo;
constructor Create;
destructor Destroy; override;
procedure Assign(aNewValue:TMyClass);
function Function10: String;
procedure Proc10(sMsg: String);
end;
..
Procedure TMyBaseClass.Assign(aNewValue:TMyBaseClass);
begin
self.ID := aNewValue.ID; // Und damit Möglichkeit, TMyClass komplett zu überschreiben
self.Name := aNewValue.Name;
end;
Procedure TMyClass.Assign(aNewValue:TMyClass);
begin
inherited (TMyBaseClass(aNewValue));
self.Info := aNewValue.Info;
end;
Oder geht das einfacher?
Mein Problem ist, dass TMyClass aus ca. 40 Properties besteht und noch Unter- und Überklassen bestehen. Nur Arbeit, alle Properties in Assign aufzunehemen, aber schwierig, den aktuelle zu halten wenn mehrere eventuell neue Properties hinzufügen (Selten, aber kann vorkommen)