Muchas veces después de la era de Windows 98, hemos experimentado que algunos diálogos pierden su orden Z y vuelven a la forma anterior.Delphi - ¿Cómo evitar que Forms/MsgBoxes se muevan en forma previa?
Por ejemplo:
Dialog1.ShowModal;
Dialog1.OnClickButton() : ShowMessage('anything');
Cuando aparezca de mensaje, que a veces no tiene el enfoque y se mueve bajo Dialog1. Los usuarios están confundidos al respecto, dicen: Mi aplicación se congeló !!! Pero si usan Alt + Tab para moverse a otra aplicación y volver, el foco vuelve al MessageBox y será la ventana de primer plano.
Hemos experimentado esto con ShowMessage, MessageBox, formularios normales y también formularios QuickReport.
¿Alguien sabe de esto? ¿Es un error de Windows? ¿Cómo puedes prevenirlo? Cómo atrapar esto?
Gracias por su ayuda: dd
Me dijo que después de Win98, por lo que todos los sistemas operativos (Win7 también) se ven afectados por este problema. Utilizamos Delphi 6 Prof, por lo que las propiedades no funcionan con los formularios predeterminados.
Alguien dijo que los diálogos de mensaje son controlables con MessageBox + MB_APPLMODAL. Esta es una buena noticia, pero tenemos muchos formularios y componentes antiguos, herramientas de terceros.
Así que es un trabajo difícil hacer una aplicación completamente nueva con la sustitución de los formularios.
Pero intentaremos hacer esto.
Creo que la respuesta es que se trata de un problema de mitad de aplicación y medio problema de Windows. Si Windows a veces maneja esto, y algunas veces no lo hace, parece ser un error de Windows. Pero si podemos forzar una buena ventana modal, entonces es un error de programación.
¿Alguien puede explicarme cuál es el significado de la bandera WS_POPUP? ¿Tiene algún efecto secundario o no?
Gracias: dd
menudo he tenido este problema también, no he encontrado una respuesta tampoco. Esperamos con interés lo que la gente ha inventado. –
¿Con qué versión esto está sucediendo? –
eres Windows 98? Guau. Como pregunta Sertac, la versión de Delphi es crítica. Delphi 2007 y posteriores tienen una solución alternativa. –