Vcl.Controls.TControl.OnContextPopup
Delphi
property OnContextPopup: TContextPopupEvent read FOnContextPopup write FOnContextPopup;
C++
__property TContextPopupEvent OnContextPopup = {read=FOnContextPopup, write=FOnContextPopup};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
event | protected | Vcl.Controls.pas Vcl.Controls.hpp |
Vcl.Controls | TControl |
説明
ユーザーがコントロールを右クリックした、さもなければ、ポップアップ メニューを起動した(キーボードを使用したなどで)場合に発生します。
OnContextPopup イベント ハンドラは、ユーザーがマウス、またはポップアップ メニューを要求するためにキーボードを利用した際に、呼び出されます。 OnContextPopup イベントは、WM_CONTEXTMENU メッセージによって生成されます。WM_CONTEXTMENU メッセージ自体は、ユーザーが右マウス ボタンをクリック、または、〔Shift〕+〔F10〕 やアプリケーション キーを押した際に、生成されるものです。
このイベントは、コントロールに関連付けられているポップアップ メニューがない(PopupMenu プロパティが設定されていない)場合や、コントロールの関連付けられているポップアップ メニューの AutoPopup プロパティが false の場合には、非常に便利です。 しかし、OnContextPopup は自動コンテキスト メニューをオーバーライドするために使用することも可能です。この自動コンテキスト メニューは、コントロールに、AutoPopup
プロパティが true であるポップアップ メニューが関連付けられている場合に現れます。 この後者の場合、イベント ハンドラが自分のメニューを表示するには、デフォルトのコンテキスト メニューを抑制するために、Handled
パラメータを true に設定しなければなりません。
ハンドラの MousePos
パラメータは、クライアントの座標における、マウスの位置を示します。 イベントがマウス クリックによって生成されたものではない場合、MousePos
は (-1,-1) となります。
メモ: 親コントロールは、自分の子コントロールよりも前に OnContextPopup イベントを受け取ります。 その上で、大抵の子コントロールでは、デフォルトのウィンドウ プロシージャにより、子コントロールの後に、親コントロールの OnContextPopup イベント受信が発生します。 その結果、親コントロールが OnContextPopup イベント ハンドラにおいて
Handled
に True を設定しないと、イベント ハンドラは、コンテキスト メニューが表示されるたびに、複数回呼び出されることになります。
OnContextPopup は、Vcl.Controls.TContextPopupEvent 型のイベント ハンドラです。