OnMouseMoveFunction を定義しようとしているカスタム コントロールがあります。基本的に、コントロールは検索バーとして機能し、TGrid
結果を表示するための子カスタム コントロールを含む編集ボックスで構成されます。既にいくつかのマウス イベントを処理してTGrid
いますが、OnMouseMove を実装しようとすると、TGrid
OnMouseMove メソッドを設定しようとすると次のエラーが発生します。
E2034 Cannot convert 'void (_fastcall * (_closure )(TMouseMoveEvent))(TMouseMoveEvent)' to 'TMouseMoveEvent'
関数が定義されているヘッダー ファイルの一部を次に示します。
void __fastcall GridMouseMove( TMouseMoveEvent * MouseEvent );
コントロールの CPP ファイル内の実際の関数は次のとおりです。
void __fastcall TFmSearchBar::GridMouseMove( TMouseMoveEvent * MouseEvent )
{
//handle event here
}
この時点まで、すべてが問題なくコンパイルされます。ただし、割り当てTGrid
たメソッドに の OnMouseMoveEvent ハンドラを割り当てようとすると、エラーが発生します。
void __fastcall TFmSearchBar::SetGridProperties()
{
FGrid->OnKeyDown = GridKeyDown;
FGrid->OnClick = GridClick;
FGrid->OnMouseEnter = GridMouseEnter;
FGrid->OnMouseLeave = GridMouseLeave;
FGrid->OnMouseMove = GridMouseMove; //This line causes the error
}
これがビルドされない原因は何ですか?