E2137 Methode '%s' nicht in Basisklasse gefunden (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben für eine Methode die Direktive override angegeben. Der Compiler kann jedoch in der Basisklasse keine Prozedur mit diesem Namen finden.


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.

Ein üblicher Grund für diesen Fehler ist ein Tippfehler im Quelltext. Stellen Sie sicher, dass der Name der override-Prozedur so geschrieben ist wie in der Basisklasse. Eine weitere Möglichkeit besteht darin, dass die Basisklasse die betreffende Prozedur nicht zur Verfügung stellt. In diesem Fall ist eine nähere Prüfung des Problems erforderlich.


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.

Die Lösung besteht in diesem Beispiel in der richtigen Schreibweise des Prozedurnamens in Derived.