E2183 dispid 節は OLE オートメーション部にしか許されていません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

automated 部に入っていないプロパティに dispid を指定しました。


program Produce;

  type
     Base = class
       v : integer;
       procedure setV(x : integer);
       function getV : integer;
       property Value : integer read getV write setV dispid 151;
     end;

  procedure Base.setV(x : integer);
  begin v := x;
  end;

  function Base.getV : integer;
  begin getV := v;
  end;

begin
end.

{ このプログラムは OLE オートメーションオブジェクトの dispid を設定しようとしているが,そのプロパティは automated 部で宣言されていない }


program Solve;

  type
     Base = class
       v : integer;
       procedure setV(x : integer);
       function getV : integer;
     automated
       property Value : integer read getV write setV dispid 151;
     end;

  procedure Base.setV(x : integer);
  begin v := x;
  end;

  function Base.getV : integer;
  begin getV := v;
  end;

begin
end.

{ エラーを解決するには,プロパティ宣言から dispid 節を削除するか,プロパティ宣言を automated 部の中へ入れる }