2

Delphi で ActiveX コントロールを実装しました。ここで、イベントを追加したいと思います。タイプ ライブラリ エディターを使用して、このようにイベントを追加します。

procedure OnActionMethod(ActionType: Integer; x1: Integer; 
  y1: Integer; x2: Integer; y2: Integer; param1: Double); dispid 213;

TezDICOMXOnActionMethod = procedure(ASender: TObject; 
  ActionType: Integer; x1: Integer; y1: Integer; x2: Integer; y2: Integer; 
  param1: Double) of object;

すべてが正常にコンパイルされます。

次に、C# アプリケーションを作成し、その ActiveX コントロールを使用して、イベント ハンドラーを実装してみます。

private AxezDICOMax.AxezDICOMX the_ezdicom; // this is the activeX object

public void onActionHandler(object sender,long actiontype, 
    long x1, long y1, long  x2,long  y2, double param1)
{
  MessageBox.Show("abcabc" + x1.ToString() + x2.ToString());
}

private void MainForm_Load(object sender, System.EventArgs e)
{           
  the_ezdicom.OnActionMethod += new 
    AxezDICOMax.IezDICOMXEvents_OnActionMethodEventHandler(this.onActionHandler);
}

しかし、コンパイラはこのエラーで不平を言います

Error 1  No overload for 'onActionHandler' matches delegate 
  'AxezDICOMax.IezDICOMXEvents_OnActionMethodEventHandler'
  OnActionMethodEventHandler

私は何を間違えましたか?OnActionMethodEventHandler()Delphi ソースのどこにも見つかりませんでした。

4

1 に答える 1

1

Visual Studioのオートコンプリート機能を使用して、実際の方法を確認します。

void  onActionHandler(object sender, AxezDICOMax.IezDICOMXEvents_OnActionMethodEvent e)
{
    MessageBox.Show("abc");
}
于 2012-09-12T07:41:22.653 に答える