Page 1 of 1

Programa.Exe dejo de funcionar

PostPosted: Tue May 14, 2013 12:56 am
by RodolfoRBG
Hola jovenes,

Tengo un sistema que le permite al usuario abrir muchas ventanas y dialogos al mismo tiempo. El problema surge cuando el usuario cierra las ventanas y dialogos rapidamente. Aparece lo siguiente:

"Programa.Exe dejo de funciona"
"El programa dejo de funcionar correctamente por un problema. Windows cerrara el programa y le notificara si existe una solucion"

No se genera ningun "Error.log" y por supuesto que Windows nunca me notifica la solucion. Lo he probado en WinVista, 7 y 8.

Sinembargo, si las mismas ventanas las cierran lentamente una a una, no aparece ese problema.

Alguna idea para evitar esto?

Salu2

Re: Programa.Exe dejo de funcionar

PostPosted: Tue May 14, 2013 7:54 am
by Antonio Linares
Rodolfo,

Como cierra rapidamente las ventanas ? Pulsando en la esquina superior derecha (x) ?

Hay alguna función en tu programa que lo haga automaticamente ?

Re: Programa.Exe dejo de funcionar

PostPosted: Tue May 14, 2013 10:06 am
by hmpaquito
Puede estar pasando que en el VALID del DIALOG haya algun proceso (validacion, grabacion) que haga que la salida no sea inmediata. Durante ese proceso, normalmente un bucle, Windows inmediatamente al clickear la X detecta que el programa no despacha eventos y lanza el mensaje de advertencia de que el programa dejo de funcionar. Es la misma problematica que si se recorre un bucle y no se pone el SysRefresh()

Solucion: revisar los VALID de los DIALOGS.

Re: Programa.Exe dejo de funcionar

PostPosted: Tue May 14, 2013 4:38 pm
by RodolfoRBG
Antonio: Cierro las Ventanas/Dialogos con un boton que solo hace el :END() de la Ventana/Dialogo, o sea, lo mismo que haria si se cierra pulsando la [X] de la esquina superior derecha.

Paquito: En efecto, debe tratarse de que cuando el usuario cierra rapidamente las ventanas/dialogos no le da tiempo a que concluya las tareas (guardar la informacion, cerrar los archivos, etc. que incluyo en el valid y/o en el :bPostEdit) pero no se como impedir que cierre la siguiente ventana antes de concluir con la anterior. Inclui el SYSREFRESH() tanto al inicio del valid como al final (antes de .T.) asi como al inicio y final del :bPostEnd y continuo con el mismo problema.

Gracias a ambos por su interes. Alguna otra sugerencia?

Re: Programa.Exe dejo de funcionar

PostPosted: Tue May 14, 2013 6:03 pm
by hmpaquito
Rodolfo,

En esos procesos validatorios (vaya palabra!), previos a la salida, saca una ventana MODAL de mensaje de espera. Eso mejorará:
1) Porque impedirá que el usuario pulse donde no debe
2) El usuario sabrá que se está haciendo algo y que debe esperar, eso que llaman ahora "experiencia del usuario".

Saludos