Page 1 of 1

Cambio en Errorsys

PostPosted: Fri Feb 16, 2007 8:00 pm
by Kleyber
Hola,

Alguno de ustedes ha conseguido cambiar el errorsys de forma que solo se quite el programa si pulsarmos el botón QUIT, y si pulsarmos el botón SALIR el programa continue normalmente? Se si, donde puedo coger tal información?

Saludos

PostPosted: Fri Feb 16, 2007 10:47 pm
by R.F.
No es tan facil, continuar o no la ejecucion de un programa depende del tipo de error que se haya generado, algunos errores pueden "reintentar" pero otros requieren que la aplicacion se aborte.

Clipper posee un "objeto Error" y (x)Harbour hereda dicho comportamiento, funciona asi:

Existe una funcion "global" llamada ErrorBlock(), que recibe como parámetro un bloque de código el cual a su vez puede recibe como parametro el objeto error, el bloque de codigo lleva una funcion a la cual se va a llamar cuando el programa cause un error:

ErrorBlock({|oError| MiControlDeErrores(oError)})

Tan simple como eso, cuando tu programa cause un error, se llama de manera automatica a la funcion MiControlDeErrores() y ahi, tu puedes escribir lo que tu quieras que pase con los errores.

Lo mas facil es hacer:

Funcion MiControlDeErrores(oError)
QUIT
RETURN

Asi el programa directamente se sale sin hacer mas preguntas.

FiveWin tiene el Errsysw.prg que contiene la función que controla los errores en tiempo de ejecucion de FiveWin, esta en \source\function. Esta funcion "analiza" el objeto error y en base a eso dibuja el dialogo muestra el listado de errores y dependiendo del estado del error muestra los botones correspondientes, en algunos casos, dependiendo de la serveridad del error sera el "Default", en otras el "Retry" y en otras directamente el "Quit", pero todo esto vienen de analizar las datas del objeto error.

Para mas informacion sobre las propiedades del objeto ERROR las puedes encontrar en el manual de Clipper.

PostPosted: Sat Feb 17, 2007 12:08 am
by Kleyber
Maestro Rene,

Gracias por la aclaración. Lo que pasa es que en el Errsysw.prg de Fivewin me muestra siempre la misma pantalla con los mismos botones, no importando si el error es un error que se pueda intentar nuevamente o no. Por eso pregunto se si puede "forzar" la diferenciación de un error y otro, y asi hacer una "configuración" del errorsys.

Saludos,