0

TJvListView コントロールを持つ Delphi 6 アプリケーションがあります。コントロールの PopupMenu プロパティを介してそのコントロールに関連付けられたポップアップ メニューがあります。私がやりたいことは、ユーザーが右クリックしたときにマウスが置かれた列に基づいて別のポップアップ メニューを表示することです。現在の列がポップアップ メニューを必要としない場合は、ポップアップ メニューをまったく表示しないという追加のオプションがあります。これどうやってするの?

TListView でのインプレース編集に関する Remy Lebeau によるこの詳細なサンプルのおかげで、1 つのしわを除いて、マウスがどの行と列の上にあるかがわかります。現在の行と列を決定するマウス ダウン イベントは、ポップアップ メニューが終了した後に発生します。

私は今、2つのことを知る必要があります。まず、マウスの右クリック後にポップアップ メニューが表示される前にイベントを発生させて、現在のリスト ビューの行と列を記録し、必要に応じてポップアップ メニューを非表示にするにはどうすればよいですか。現在の列に基づくポップアップ。TListView PopupMenu プロパティとサポート コードを使用する代わりに、大量のミニフォームを作成する必要がないようにしたいと考えています。TJvListViewの周りに作成する必要があるサブクラスに、おそらくいくつかの派手なフットワークなど、簡単な解決策はありますか?

4

1 に答える 1

0

mousedown / Clickの代わりにmousemoveで検出を実行し、それに応じてポップアップメニューを変更することができます。また、ポップアップメニューを削除して、必要に応じてマウスダウンでp.pupupを介して希望を呼び出すこともできます。

于 2012-11-21T00:52:27.480 に答える