Hallo.
Vielen Dank für deine Antwort! Jetzt habe ich genau das, was ich wollte und die Klasse TSubmission kann nun beliebig verändert werden, ohne dass die Nachkommen darunter "leiden"
Delphi-Quellcode:
{ TSubmission }
procedure TSubmission.Assign(Source: TPersistent);
begin
if Source is TSubmission then
begin
Tags := TSubmission(Source).Tags;
Rating := TSubmission(Source).Rating;
Score := TSubmission(Source).Score;
PictureNumber := TSubmission(Source).PictureNumber;
MD5 := TSubmission(Source).MD5;
end
else
inherited;
end;
{ TExtendedSubmission }
procedure TExtendedSubmission.Assign(Source: TPersistent);
begin
if Source is TExtendedSubmission then
begin
Extension := TExtendedSubmission(Source).Extension;
DateTime := TExtendedSubmission(Source).DateTime;
Author := TExtendedSubmission(Source).Author;
end;
inherited;
end;
Folgender Testcode erzeugt auch das gewünschte Ergebnis:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
var
x, y: TExtendedSubmission;
begin
x := TExtendedSubmission.Create;
try
x.MD5 := 'Test';
y := TExtendedSubmission.Create;
try
y.Assign(x);
showmessage(y.MD5); // = "Test"
finally
y.Free;
end;
finally
x.Free
end;
end;
Gruß
blackdrake