Minimizar Delphi aplicación con menú emergente en Vivo
Pregunta
Estoy intentando ejecutar esto en un contador de tiempo:
Application.Minimize;
ShowWindow( Application.handle, SW_HIDE );
Ha sido en el código para siempre y nos acaba de descubrir que no funciona cuando se tiene un popupmenu activo, no minimiza la ventana padre MDI.
Creo que si puedo cerrar el menú emergente antes de ejecutar este código, a continuación, voy a estar bien. El problema es que este código está en un MDI primario y no tengo ni idea de dónde está el menú emergente actual. No importa si es parte de la barra de herramientas de otra forma, esta forma de barras de herramientas, el producto de un clic derecho o esa llave aparentemente sin sentido junto a la barra espaciadora.
Entonces, ¿hay una manera de ocultar el menú emergente activa en toda mi programa?
Además, si hay una mejor trozo de código que lo estoy usando para minimizar que va a evitar este problema, eso sería increíble información también.
Solución
Para cerrar un menú emergente puede utilizar
if GetCapture <> 0 then
SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
en el código antes de intentar minimizar el formulario.