Das ist ganz einfach:
Die Standard-Methode in TCollectionItem für das Zuweisen ist die Assign-Methode. Da du selbige nicht
überschrieben hast, wird die Standardmethode aufgerufen und diese wirft den Fehler aus, da sie nicht
weiß, was sie machen soll.
Beispiel:
Delphi-Quellcode:
type
TItem = class(TCollectionItem)
private
FVar: String;
public
procedure Assign(pt:TPersistent);override;
property Var: String read FVar write FVar;
end;
:
:
procedure TItem.Assign(pt:TPersistent);override;
begin
if (pt is TItem) then
begin
fvar := TItem(pt).var;
end
else
inherited assign(pt);
end;
Dann sollte es funktionieren