E2264 インターフェース '%s' にはメソッド解決は使用できません (Object Pascal)

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

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

implements 節に指定されたインターフェースに対してメソッド解決節を使用しようとしました。


program Produce;
type
  I0 = interface
    procedure i0p0(a : char);
  end;

  T0 = class(TInterfacedObject, I0)
    procedure I0.i0p0 = proc0;
    function getter : I0;
    procedure proc0(a : char);
    property p0 : I0 read getter implements I0;
  end;

procedure T0.proc0(a : char);
begin
end;

function T0.getter : I0;
begin
end;
end.


{ この例ではメソッド proc0 がインターフェース手続き i0p0 にマップされているが,このインターフェースは implements 節にあるため,名前の変更は許されない }


program Solve;
type
  I0 = interface
    procedure i0p0(a : char);
  end;

  T0 = class(TInterfacedObject, I0)
    function getter : I0;
    procedure i0p0(a : char);
    property p0 : I0 read getter implements I0;
  end;

procedure T0.i0p0(a : char);
begin
end;

function T0.getter : I0;
begin
end;
end.


{ このエラーの解決策は不正な「名前解決節」を削除すること。これを行うには,インターフェースメソッドと同じ名前のクラスにある手続きを指定する方法が簡単である }