Delphi弹出菜单可见性

时间:2008-09-26 07:09:54

标签: delphi popupmenu

在Delphi 7中是否有办法查明弹出菜单是否可见(显示在屏幕上),因为它缺少可见属性。

2 个答案:

答案 0 :(得分:4)

您可以通过在OnPopup事件中设置它来制作自己的旗帜。问题是知道popupmenu何时关闭。 Peter Below有解决方案。

但我问我为什么要这个?也许有更好的方法来解决潜在的问题。

答案 1 :(得分:2)

这似乎有点简单(我使用Delphi 2007):

在WM_CONTEXTMENU消息处理程序中,在调用继承的处理程序之前,将显示弹出菜单,您可以设置标记。在调用inherited后,弹出菜单已关闭,重置您的标志。

procedure TForm1.WMContextMenu(var Message: TWMContextMenu);
begin
  FPopupActive := True;
  try
    OutputDebugString(PChar(Format('popup opening', [])));
    inherited;
  finally
    FPopupActive := False;
    OutputDebugString(PChar(Format('popup closed', [])));
  end;
end;