Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Objekt in Liste mit anderer Instanz ersetzen ohne Referenz zu verlieren

  Alt 7. Feb 2023, 12:53
Wenn das in allen Klassen implemnetiert ist, musst Du ja nur für die "neuen" Eigenschaften implementieren


Delphi-Quellcode:
TBasis = class
 a,b: Integer;
 procedure Assign( Source: TPersistent); virtual;
end;

TTeil = class
  aa, zz: integer;
  procedure Assign( Source: TPersistent); virtual;
end;

TAbg = class( TBasis)
  c: TTeil;
  d, e: Integer;
  procedure Assign( Source: TPersistent); virtual;
end;
...
procedure TBasis.Assign( Source: TPersistent);
begin
  a := Source.a;
  b := Source.b;
end;
...
procedure TTeil.Assign( Source: TPersistent);
begin
  aa := Source.aa;
  zz := Source.zz;
end;
...
procedure TAbg.Assign( Source: TPersistent);
begin
  inherited Assign( Source); //a, b
  c.Assign( Source.c); //c
  d := Source.d;
  e := Source.e;
end;
Markus Kinzler
  Mit Zitat antworten Zitat