Pregunta

Tengo una aplicación de Delphi 2006 que aparece un cuadro de diálogo de alerta modal cuando se detecta una condición de error.Como la verificación de la condición de error se realiza en un manejador inactivo, el cuadro de diálogo puede aparecer en la parte superior de otro cuadro de diálogo modal si se lo ocurre.Esto puede llevar a una situación confusa para el usuario donde la forma principal de la aplicación no se enfoca después de que se cierre el cuadro de diálogo de alerta porque este es otro diálogo modal oscuro.

Lo que me gustaría hacer es posponer las ventanas emergentes de alerta mientras la aplicación tiene los cuadros de diálogos modales abiertos.

Intenté getLastAptApopup (Mymainwindow.Handle), pero parece volver a que no sea cero todo el tiempo.

¿Fue útil?

Otros consejos

solo prueba

if not IsWindowEnabled(MyMainWindow.Handle) then

Esto también se encargaría de situaciones cuando un diálogo que no sea de Delphi esté actuando modal, como en windows.MessageBox(Handle....o un cuadro de diálogo común está mostrando (es decir, un Topendialog).

Use anypopup () Función

Acerca de GetLastApectApopup ().Puede devolver el valor es el mismo que el parámetro HWND cuando

  • La ventana identificada por HWND fue activa más reciente.
  • La ventana identificada por HWND no posee ninguna ventana emergente.
  • La ventana identifica por HWND no es una ventana de nivel superior, o es propiedad de otra ventana.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top