Alternativ könnte man es auch über einen Record abdecken:
Delphi-Quellcode:
TMyRec = record
Data1: String;
Data2: Integer;
end;
TMyClass1 = class
public
Data: TMyRec;
constructor Create;
property Data1: String read Data.Data1 write Data.Data1;
property Data2: Integer read Data.Data2 write Data.Data2;
end;
TMyClass2 = class(TMyClass1)
end;
Delphi-Quellcode:
..
myC1 := TMyClass1.Create;
myC2 := TMyClass2.Create;
try
myC1.Data1 := 'myC1';
myC2.Data := myC1.Data; //damit wird der Record kopiert
myC1.Data1 := 'was anderes';
finally
myC2.Free;
nyC1.Free;
end;
Mit diesem Record kann man dann jede Klasse ausstatten, die diese Eigenschaften haben soll.