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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top