E2210 interface 型の中には '%s' 指令は指定できません (Object Pascal)

提供: Appmethod Topics
移動先: 案内検索

エラーと警告のメッセージ(Object Pascal):インデックス への移動

インターフェースの解析中に,使ってはいけない指令が見つかりました。


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

begin
end.

{ この例では,interface 型では指定できない private 指令に対してエラーが出る }


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.

{ 唯一の解決策は,インターフェース定義から問題の指令を削除すること。インターフェースではこのような指令はサポートされないが,目的の可視性の宣言部に実装メソッドを配置できる。次の例では,TBaseClass.fnord 手続きを private 部に配置することで意図する結果を得ている }