Delphi Pop Up菜单可见性
时间:2020-03-06 14:46:10 来源:igfitidea点击:
Delphi 7中是否有一种方法可以确定弹出菜单是否可见(显示在屏幕上),因为它缺少Visible属性。
解决方案
我们可以通过在OnPopup事件中对其进行设置来制作自己的标志。问题是知道何时关闭弹出菜单。彼得·比尔(Peter below)为此提供了解决方案。
但是我问你为什么要这个?也许有更好的方法来解决潜在的问题。
这似乎更简单(我使用的是Delphi 2007):
在WM_CONTEXTMENU消息处理程序中,在调用继承的处理程序之前,将显示弹出菜单,我们可以设置标志。调用继承后,弹出菜单已关闭,请重置标志。
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;