si tu as delphi pro, regarde le code de TPersistent.AssignTo, tu verras qu'en fait il lance la fameuse exception.
Code :
- procedure TPersistent.AssignTo(Dest: TPersistent);
- begin
- Dest.AssignError(Self);
- end;
- procedure TPersistent.AssignError(Source: TPersistent);
- var
- SourceName: string;
- begin
- if Source <> nil then
- SourceName := Source.ClassName else
- SourceName := 'nil';
- raise EConvertError.CreateResFmt(@SAssignError, [SourceName, ClassName]);
- end;
- procedure TPersistent.Assign(Source: TPersistent);
- begin
- if Source <> nil then Source.AssignTo(Self) else AssignError(nil);
- end;
|
Dans l'utilisation du AssignTo, il ne faut donc pas faire de inherited sauf si tu t'apercois que ton objet n'est pas copiable ex: tu copies un TUtilisateur dans un TOrdinateur