E2137 Méthode '%s' non trouvée dans la classe de base (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Vous avez appliqué la directive 'override' à une méthode, mais le compilateur ne peut pas trouver de procédure de même nom dans la classe de base.



program Produce;

  type
    Base = class
      procedure Title; virtual;
    end;

    Derived = class (Base)
      procedure Titl; override;
    end;

    procedure Base.Title;
    begin
    end;

    procedure Derived.Titl;
    begin
    end;

begin
end.

Une cause habituelle de cette erreur est une simple erreur typographique dans le code source. Vérifiez que le nom utilisé pour la procédure 'override' est orthographié de la même manière que celui de la classe de base. Dans d'autre situations, la classe de base ne fournira pas la procédure souhaitée : c'est dans ces situations qu'une analyse plus approfondie sera nécessaire pour déterminer comment résoudre le problème.



program Solve;

  type
    Base = class
      procedure Title; virtual;
    end;

    Derived = class (Base)
      procedure Title; override;
    end;

    procedure Base.Title;
    begin
    end;

    procedure Derived.Title;
    begin
    end;

begin
end.

La solution dans cet exemple consiste à corriger l'orthographe du nom de procédure dans Derived.