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
Programa.Exe dejo de funcionar
- RodolfoRBG
- Posts: 257
- Joined: Tue May 16, 2006 4:46 pm
- Location: San Luis Potosi, SLP, Mexico
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Programa.Exe dejo de funcionar
Rodolfo,
Como cierra rapidamente las ventanas ? Pulsando en la esquina superior derecha (x) ?
Hay alguna función en tu programa que lo haga automaticamente ?
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
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.
Solucion: revisar los VALID de los DIALOGS.
- RodolfoRBG
- Posts: 257
- Joined: Tue May 16, 2006 4:46 pm
- Location: San Luis Potosi, SLP, Mexico
- Contact:
Re: Programa.Exe dejo de funcionar
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?
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
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
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