Einzelnen Beitrag anzeigen

SebastianZ

Registriert seit: 23. Jul 2009
89 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: auf die Daten der Basisklasse zugreifen

  Alt 21. Aug 2017, 10:14
Wenn Daten über mehrere Klassen hinweg kopiert werden sollen, wäre der Klassiker die Klasse von TPersistent abzuleiten und Assign zu implementieren:
http://docwiki.embarcadero.com/Libra...sistent.Assign

Ansonsten ist die Antwort von himitsu natürlich einfacher


Dein Beispiel (ungetestet) erweitert:

Delphi-Quellcode:
Type

TMyData = class(TPersistent)
     i : Integer;
     j : Integer;
     pt : TPoint;
  public
    procedure Assign(Source: TPersistent); override;

end;
 

TMyClass= Class(TMyData)

      Index : Integer;
end;


TExtendClass = class ( TMyClass )

a : string ;
b : string ;


procedure LoadDatafromDatabase ;

end;


procedure TMyData.Assign(Source: TPersistent);
begin
  if Source IS (TMyData) then
  begin
    Self.i := TMyData(Source).i;
    Self.j := TMyData(Source).j;
    ....
  end;
end;


procedure TExtendClass.LoadDatafromDatabase ;
var aData : TMyData;
begin
     /// DAten aus einer Datenbank laden ....
     ladeDaten ( aData ) ;

      /// kann ich diesen länglichen umkopier code vermeiden ?????????
      Self.Assign(aData);
end;
  Mit Zitat antworten Zitat