E2178 dynamic メソッドとメッセージハンドラは OLE オートメーション部に置くことはできません (Delphi)

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

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

クラス宣言の automated 部の中へ動的メソッドかメッセージメソッドを誤って入れようとしました。


program Produce;

  type
    Base = class
    automated
      procedure DynaMethod; dynamic;
      procedure MessageMethod(VAR msg : Integer); message 151;
    end;

    procedure Base.DynaMethod;
    begin
    end;

    procedure Base.MessageMethod;
    begin
    end;

begin
end.

{ クラスの OLE オートメーション部の中では動的メソッドやメッセージメソッドを宣言できない。したがって,このプログラムにある 2 つのメソッド宣言はどちらもエラーを生成する }


program Solve;

  type
    Base = class
      procedure DynaMethod; dynamic;
      procedure MessageMethod(VAR msg : Integer); message 151;
    end;

    procedure Base.DynaMethod;
    begin
    end;

    procedure Base.MessageMethod;
    begin
    end;

begin
end.

{ プログラムからこのエラーを取り除く方法はいくつかある。まず,このコードに示すように,このエラーを生成した宣言を automated 部の外へ出す方法がある。あるいは,メソッドの dynamic 属性または message 属性を削除してもよい。これらの属性を削除すると,目的の動作は得られなくなるがエラーもなくなる }