Pergunta

Eu tenho um Delphi 2006 app que aparece um modal de diálogo de alerta quando uma condição de erro é detectado.Como o cheque para a condição de erro é feito em um manipulador de espera, a caixa de diálogo pode aparecer por cima de outra caixa de diálogo modal se que passa a ser exibido.Isso pode levar a uma situação confusa para o usuário, onde a aplicação do formulário principal não obter foco após o alerta de diálogo é fechada, porque estes é outro obscurecida caixa de diálogo modal.

O que eu gostaria de fazer é adiar o alerta de pop-ups enquanto o aplicativo tem qualquer Modal de caixas de diálogo abrir.

Eu tentei GetLastActivePopup (MyMainWindow.Identificador), mas parece retorno diferente de zero o tempo todo.

Outras dicas

Apenas teste

if not IsWindowEnabled(MyMainWindow.Handle) then

Este seria também cuidar de situtations quando um não-Delphi diálogo está atuando modal, como em windows.MessageBox(Handle....ou um de caixa de diálogo comuns está mostrando (i.e.um TOpenDialog).

Use anypopup () função .

sobre getlastactivepopup ().Pode retornar o valor é o mesmo que o parâmetro HWND quando

  • A janela identificada pelo HWND foi mais recentemente ativa.
  • A janela identificada pelo HWND não possui nenhuma janela pop-up.
  • A janela identifica pelo HWND não é uma janela de nível superior, ou é de propriedade de outra janela.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top