FoxPro/Visual FoxPro - Error

   
Vista:

Error

Publicado por Dario (94 intervenciones) el 21/11/2007 22:20:33
Chicos les paso una rutina de error ;

ON ERROR DO errhand WITH ERROR( )
RETURN

*** Controlador de errores ***
PROCEDURE errhand
PARAMETER errnum,message
_Screen. WindowState = 2
=messagebox("Ocurrió el error " + "en la línea Nº " + alltrim(str(errnum)) + " y el programa se cerrará" + ;
chr(13) + " Por favor, consulte a su programador",0+64,"¡ATENCIÓN!")
close ALL
quit
***Si no hay error pasará la función a este método, indicando que todo está en orden***

El problema es que el error lo detecta pero cierra las bases y no sale de la aplicacion , si no que el programa sigue corriendo y trata de abrir las bases que ya estan cerradas.
por que sera ??
Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error

Publicado por Plinio (7771 intervenciones) el 22/11/2007 03:57:21
Prueba poniendo antes del QUIT

ON SHUTDOWN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error

Publicado por enrique (1041 intervenciones) el 22/11/2007 12:31:51
antes del "CLOSE ALL" pon lo siguiente CLEAR EVENTS ; esto te elimina los eventos activos , que son los que no te dejan salir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error

Publicado por Ernesto Hernandez (4632 intervenciones) el 22/11/2007 18:09:53
puedes usar el ON SHUTDOWN y crear un .PRG donde valides si tienen opciones del menu abiertas
algo asi

ON SHUTDOWN DO CloseApp

y ccreas un CloseAPP.PRG y ppnes esto

IF _SCREEN.FORMCOUNT>1
MESSAGEBOX("El sistema no puede ser cerrado.","No deje abiertas opciones de menu")
RETURN
ENDIF
IF W_CHEACC=1
IF MESSAGEBOX("Desea cerrar el sistema",4+32+0,"Se cerrara el sistema")<>6
RETURN
ENDIF
ENDIF
ON SHUTDOWN
IF .NOT. ISNULL(BS1)
BS1.VISIBLE=.F.
ENDIF
*CLOSE ALL
IF W_CHEACC=0
SET SYSMENU TO DEFA
_SCREEN.CAPTION="Microsoft Visual FoxPro"
SET HELP TO
ENDIF
clear events
CLEA ALL
CANCEL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar