E2210 Die Direktive '%s' ist im Typ interface nicht erlaubt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Beim Analysieren einer Schnittstelle wurde eine Direktive festgestellt. Direktiven dürfen aber nicht in Schnittstellen vorhanden sein.


program Produce;
  type
    IBaseIntf = interface
    private
      procedure fnord(x, y, z : Integer);
    end;

begin
end.

In diesem Beispiel gibt der Compiler eine Fehlermeldung aus, wenn er auf die Direktive private trifft, weil Direktiven in Schnittstellentypen nicht erlaubt sind.


program Solve;
  type
    IBaseIntf = interface
      procedure fnord(x, y, z : Integer);
    end;

    TBaseClass = class (TInterfacedObject, IBaseIntf)
    private
      procedure fnord(x, y, z : Integer);
    end;

  procedure TBaseClass.fnord(x, y, z : Integer);
  begin
  end;
begin
end.

Das Problem kann nur auf eine Weise gelöst werden: Sie müssen die betreffende Direktive aus der Schnittstellendefinition entfernen. Schnittstellen unterstützen diese Direktiven nicht. Sie können aber die implementierende Methode in den gewünschten Sichtbarkeitsabschnitt einfügen. In diesem Beispiel wird das Ziel erreicht, indem die Prozedur TBaseClass.fnord in einen private-Abschnitt eingefügt wird.