Naja wie gesagt
Assign überschreiben (AssignTo ist
imho nur optional)
Zitat von
xZise:
[...]Und als zweites musst du die Methode "Assign" bzw "AssignTo" überschreiben, damit Delphi auch weiß, was den für Daten übernommen werden müssen. Mal ein kleines Beispiel:
Delphi-Quellcode:
type
TAssignBeispiel = class(TPersistent)
private
FEineZahl : Integer;
procedure AssignTo(Dest: TPersistent);
public
property EineZahl : Integer read FEineZahl write FEineZahl;
procedure Assign(Source: TPersistent); override;
end;
[...]
procedure TAssignBeispiel.AssignTo(Dest: TPersistent);
begin
if Dest is TAssignBeispiel then
TAssignBeispiel(Dest).FEineZahl := Self.FEineZahl
else
inherited;
end;
procedure TAssignBeispiel.Assign(Source: TPersistent);
begin
if Source is TAssignBeispiel then
Self.FEineZahl := TAssignBeispiel(Source).FEineZahl
else
inherited;
end;
[...]
Wenn Source oder Dest nicht ein Objekt die von TAssignBeispiel oder dessen Nachfahren abgeleitet ist, wird die standardmethode (die von Persistent) aufgerufen die einen Fehler verursachen wird. Somit bist du eigentlich immer auf der sicheren Seite
MfG
xZise