E2096 Identificateur de méthode attendu (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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.