Mega Code Archive

 
Categories / Delphi / Examples
 

How to check if a PopUp Menu is open

Title: How to check if a PopUp Menu is open type TForm1 = class(TForm) {...} procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private IsMenuOpen: Boolean; procedure WMMENUSELECT(var msg: TWMMENUSELECT); message WM_MENUSELECT; end; {...} implementation {...} procedure TForm1.WMMENUSELECT(var msg: TWMMENUSELECT); begin inherited; IsMenuOpen := not ((msg.MenuFlag and $FFFF 0) and (msg.Menu = 0)); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbRight then with ClientToScreen(Point(X, Y)) do TrackPopupMenuEx(PopupMenu1.Handle, TPM_LEFTALIGN, X, Y, Self.Handle, nil); end;