E2210 Directive '%s' non autorisée dans le type interface (Delphi)

De RAD Studio
Aller à : navigation, rechercher

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

Une directive a été rencontrée pendant l'analyse grammaticale d'une interface non autorisée.


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

begin
end.

Dans cet exemple, le compilateur donne une erreur lorsqu'il rencontre la directive private, parce que ce n'est pas autorisé dans les types interface.


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.

La seule solution à ce problème est de supprimer la directive en cause de la définition d'interface. Alors que les interfaces ne supportent pas actuellement ces directives, vous pouvez placer la méthode d'implémentation dans la section de visibilité souhaitée. Dans cet exemple, le placement de la procédure TBaseClass.fnord dans une section private devrait produire les résultats escomptés.