Minimizar Aplicação Delphi com o menu de contexto ao vivo
Pergunta
Eu estou tentando executar este em um temporizador:
Application.Minimize;
ShowWindow( Application.handle, SW_HIDE );
Tem sido no código para sempre e nós só descobriu que ele não funciona quando você tem um popupmenu ativo, ele não minimiza a janela de MDI pai.
I figura se eu posso fechar o menu pop-up antes de executar este código, então eu vou estar ok. O problema é que este código está em um pai MDI e não tenho idéia de onde o menu pop-up atual. Não importa se é parte da barra de ferramentas de outra forma, esta barra de ferramentas formulários, o produto de um clique direito ou aquela chave aparentemente sem sentido ao lado da barra de espaço.
Assim, há uma maneira de esconder o menu pop-up ativo em todo o meu programa?
Além disso, se há um melhor pedaço de código do que o que eu estou usando para minimizar isso vai contornar este problema, que seria Informações incrível também.
Solução
Para fechar um menu pop-up você pode usar
if GetCapture <> 0 then
SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
em seu código antes de tentar minimizar o formulário.