Delphi Pop Up menu visibilidad
Pregunta
En Delphi 7, hay una forma de averiguar si un menú emergente está visible (se muestra en la pantalla) o no, ya que carece de una propiedad visible.
Solución
Puedes crear tu propia bandera configurándola en el evento OnPopup. El problema es saber cuándo se cierra el menú emergente. Peter Below tiene una solución para eso.
Pero mi te pregunto por qué querrías esto? Tal vez haya una mejor manera de resolver el problema subyacente.
Otros consejos
Esto parece ser un poco más simple (usé Delphi 2007):
En su controlador de mensajes WM_CONTEXTMENU, antes de llamar al controlador heredado, el menú emergente está a punto de mostrarse, puede establecer su marca. Después de llamar a una llamada heredada, el menú emergente se ha cerrado, restablece tu marca.
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;