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 ソースのどこにも見つかりませんでした。