ホーム >プログラム >Delphi 6 ローテクTips

コンポーネントメモ・TPopupMenu

TPopupMenuの注意点。

Popupメソッド

Popupメソッドの引数はスクリーン座標を指定します。
それに対してTControlのOnMouseUpイベントのXとYの値はコントロールのクライアント座標です。
そのままでは使えないのでGetCursorPos APIでスクリーン座標のマウスカーソル位置を取得して使うのが楽です。

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  lpt_Pos: TPoint;
begin
  GetCursorPos(lpt_Pos);
  PopupMenu1.Popup(lpt_Pos.X, lpt_Pos.Y);
end;

AutoPopupプロパティ

AutoPopupプロパティがTrueの場合PopupMenuのOnMouseUpイベントはポップアップしたメニューが閉じた後に発生します。


2009-01-28: