The Delphi RTL class TPersistent, which is implemented in unit System.Classes, defines two methods: Assign and AssignTo. Relevant parts of this class are shown next:
type TPersistent = class(TObject) protected procedure AssignTo(Dest: TPersistent); virtual; public procedure Assign(Source: TPersistent); virtual; end;procedure TPersistent.Assign(Source: TPersistent);begin if Source <> nil then Source.AssignTo(Self) else AssignError(nil);end;procedure TPersistent.AssignTo(Dest: TPersistent);begin Dest.AssignError(Self);end;
Any descendent of the TPersistent class can override any or both of these methods. When you know how to copy data from some type into the object, you override Assign. When you know how ...