De vez en cuando aparece el error que Word produce cuando intento cerrar un documento con otro cuadro de diálogo abierto, pero nunca he podido entender por qué sucede.
28
De vez en cuando aparece el error que Word produce cuando intento cerrar un documento con otro cuadro de diálogo abierto, pero nunca he podido entender por qué sucede.
Respuestas:
Debido a que la mayoría de los cuadros de diálogo se consideran " modales ", lo que significa que el control no vuelve al programa principal o al contenedor de llamadas, hasta que se cierra el cuadro de diálogo. Esto es por diseño y el programador tiene la opción de hacer una ventana modal o no modal. Por lo general, una ventana se define como modal si el programa principal no puede o no debe continuar hasta que se aborde el diálogo abierto mediante la selección (Ok) o la cancelación (Cancelar).
fuente
El cuadro de diálogo podría estar diciendo algo como:
No hay una respuesta correcta obvia aquí. Es posible que haya dañado accidentalmente su documento (por ejemplo, el gato caminó sobre el teclado) en cuyo caso la respuesta es "No", o podría haber pasado horas escribiendo cambios, en cuyo caso la respuesta es "Sí".
Lo más seguro para Word es negarse a cerrar hasta que responda la pregunta.
fuente
Debido a que el programa está diseñado de esta manera, para evitar tomar medidas, el usuario podría no querer.
Por lo general, se muestra un cuadro de diálogo cuando el programa necesita que el usuario guíe alguna acción. Cerrar un documento no guardado es un excelente ejemplo: un cuadro de diálogo ofrece guardar los cambios, descartarlos o cancelar el cierre y volver a editar. El programa se niega intencionalmente a cerrar sin responder esta pregunta porque el cierre obligará a ALGUNA acción a tomarse. El programa no puede decidir por sí solo, por ejemplo. descarte la edición reciente o, por el contrario, sobrescriba la versión correcta con la escritura en el teclado.
Incluso si consideramos un diálogo que no está relacionado con el cierre, generalmente significa que hay un proceso en curso, que aún no se ha completado y que el usuario debe decidir qué camino tomar. No puede ser "simplemente abortado", porque abortar también es una acción que el usuario podría no haber querido decir.
También simplifica el diseño del programa, ya que sus creadores no tienen que crear "una salida segura" de cada función.
Hoy, la mayoría de los diálogos no son modales en el sentido técnico (el programa sigue siendo responsable), pero aún es más fácil hacerlos modales en un sentido más amplio del flujo lógico del programa.
fuente
Podría estar equivocado, pero sospecho que esto se remonta al antiguo comportamiento común de control de diálogo.
Varios de los que fueron asesinados abruptamente sin regresar tuvieron efectos secundarios desagradables, a veces incluso fuera del programa ahora muerto y no había forma de escapar cortésmente de ellos en todos los casos si estaban haciendo algo a nivel de sistema que requería la entrada del usuario.
En cuanto a por qué sigue siendo así, la gente se acostumbró, los desarrolladores programaron con esa suposición durante décadas y, lo que es más importante, los no programadores usaron esos diálogos en sus scripts de automatización de oficina y Microsoft no es más que un estricto adherente a los objetivos de compatibilidad hacia atrás .
fuente
Detrás de las cortinas, el programa (en nuestro caso es MS Word) crea un "controlador de eventos de clic de botón X" al crear la ventana. Cuando hay una ventana de diálogo, Word lo registra. Luego, en el controlador del botón X, cuando el botón X hace clic, comprueba las ventanas de diálogo abiertas grabadas. Si hay algunos, el controlador cancela la operación de cierre. Si no lo hay, finaliza el programa y el sistema operativo limpia la memoria tomada por el programa. Así es como funciona.
fuente