E2205 Interface-Typ benötigt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Es wurde ein Schnittstellentyp erwartet, aber nicht gefunden. Häufig beruht dieser Fehler auf der Angabe eines benutzerdefinierten Typs, der nicht als Schnittstellentyp deklariert wurde.


program Produce;
  type
    Name = string;

    MyObject = class
    end;

    MyInterface = interface(MyObject)
    end;

    Base = class(TObject, Name)
    end;

begin
end.

In diesem Beispiel ist die Deklaration des Typs Base falsch, weil Name nicht als Schnittstellentyp deklariert ist. Dasselbe gilt für MyInterface, weil dessen Vorfahrschnittstelle nicht als solche deklariert wurde.


program Solve;
  type
    BaseInterface = interface
    end;

    MyInterface = interface(BaseInterface)
    end;

    Base = class(TObject, MyInterface)
    end;

begin
end.

Bei Auftreten dieses Fehlers überprüfen Sie am besten noch einmal den Quelltext, um festzustellen, was wirklich beabsichtigt war. Soll eine Klasse eine Schnittstelle implementieren, muss sie zuerst explizit von einer Basisklasse wie TObject abgeleitet werden. Bei einer Erweiterung können Schnittstellen nur eine einzige Schnittstelle als Vorfahr haben.

In diesem Beispiel wird die Schnittstelle korrekt von einer anderen Schnittstelle abgeleitet und die Objektdefinition gibt richtigerweise eine Basis an, so dass Schnittstellen festgelegt werden können.