|
||
解説: FormのPopupMenuプロパティにPopupMenuコンポーネントを割り当てると、ユーザーがコントロールを右クリックしたときにポップアップメニューが表示されるようになります。 Popupメソッドを使えば画面上の指定した座標位置にポップアップメニューが表示できます。 今回は、このPopupメソッドを使って、通常の左クリックでポップアップメニューを表示してみます。 使用例: 以下の例では、アプリケーション起動後、フォームを左クリックすると、PopupMenuが表示されます。 準備としてはPopupMenuを適当に配置するだけです。 OnFormMouseUpイベントハンドラではマウスボタンの左クリックを判断して、クリックされた座標値にPopupMenuを表示しています。 Popupメソッドの引数に指定する座標値は、画面上のグローバルな値です。 そのため、フォーム上のローカルな座標をClientToScreenメソッドを使用してグローバルな座標に変換しています。 //------------------------------------------------------------------- void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Button == mbLeft) { TPoint org, pos; org.x = X; org.y = Y; pos = ClientToScreen(org); PopupMenu1->Popup(pos.x, pos.y); } } //------------------------------------------------------------------- |
||