2

コントロールから継承するカスタム Firemonkey コントロールを作成しようとしていますTListView。ユーザーがコントロールをクリックすると自動的に実行される機能をコントロールに追加したいと考えています。したがって、私の目標はOnItemClick、コントロールのフォームにメソッドを指定することではなく、コントロール自体に機能を直接追加することです。

のオンクリック ハンドラを利用するために何をする必要があるかを理解するのに苦労していますTListView。私の頭の中では、私のソリューションは次の疑似コードのようになると思います。

//somewhere in the base TListView code
void __fastcall TListView::ClickHandler()
{
    //logic for handling a click on the list view
}

//somewhere in my custom list view control
void __fastcall TMyListView::ClickHandler()
{ 
    TListView::ClickHandler(); //call base click handler so all the normal stuff happens

    //my additional logic goes here
}

ただし、どのメソッドをオーバーライドしようとするか、またはこれをどのように行うべきかについて、ドキュメントで何も見つけられないようです。

「クリックイベント」ハンドラーの呼び出しに関するこの情報を見つけました。次のような簡単な例を設定しました。

void __fastcall TFmListView::Click()
{
    ShowMessage("This is the control's click");
}

これは正常に機能しますが、ドキュメントによると:

ユーザーがコントロールの OnClick イベントにハンドラーを割り当てた場合、コントロールをクリックすると、そのメソッドが呼び出されます。

したがって、Click()コントロールのオン クリック イベント プロパティのいずれかが設定されている場合、コントロールのメソッドに配置した追加のロジックは失われます。

カスタム コントロールがクリックされたときに何が起こるかの機能を拡張するための適切な方法は何ですか?

4

1 に答える 1