Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#25

Re: Objekt in Array kopieren und anschließend freigeben

  Alt 1. Sep 2008, 18:50
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
Daniel Marschall
  Mit Zitat antworten Zitat