E2096 Identificateur de méthode attendu (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Ce message d'erreur sera émis dans plusieurs situations différentes :
- Les propriétés d'une section automated doivent utiliser les méthodes d'accès, elles ne peuvent pas utiliser les champs dans leurs clauses read ou write.
- Vous avez essayé d'appeler une méthode de classe avec la syntaxe "ClassType.MethodName", mais "MethodName" n'était pas un nom de méthode.
- Vous avez essayé d'appeler une méthode héritée avec la syntaxe "Inherited MethodName", mais "MethodName" n'était pas un nom de méthode.
program Produce; type TMyBase = class Field: Integer; end; TMyDerived = class (TMyBase) Field: Integer; function Get: Integer; Automated property Prop: Integer read Field; (*<-- Error message here*) end; function TMyDerived.Get: Integer; begin Result := TMyBase.Field; (*<-- Error message here*) end; begin end.
L'exemple a essayé de déclarer une propriété automated accédant directement à un champ. La deuxième erreur a été provoquée en essayant d'obtenir un champ de la classe de base : ceci aussi est incorrect.
program Solve; type TMyBase = class Field: Integer; end; TMyDerived = class (TMyBase) Field: Integer; function Get: Integer; Automated property Prop: Integer read Get; end; function TMyDerived.Get: Integer; begin Result := TMyBase(Self).Field; end; begin Writeln( TMyDerived.Create.Prop ); end.
Le premier problème est fixé en accédant au champ par une méthode. Le deuxième problème peut être fixé en transtypant le pointeur Self sur le type classe de base et en accédant au champ.