Visual Foxpro : comando ON SHUTDOWN
El comando ON SHUTDOWN , Especifica un comando que se ejecuta cuando intenta salir de Visual FoxPro o Microsoft Windows.
Especifica un comando que se ejecuta cuando intenta salir de Visual FoxPro o Microsoft Windows.
El comando que especifique en ON SHUTDOWN se ejecuta si intenta salir de Visual FoxPro. Si intenta salir de Microsoft Windows mientras Visual FoxPro está abierto, el control regresa a Visual FoxPro y se ejecuta el comando que especifique en ON SHUTDOWN .
El comando ON SHUTDOWN suele ser un comando DO que ejecuta una rutina para mostrar un cuadro de diálogo. El cuadro de diálogo le pregunta si está seguro de querer salir de la aplicación actual y de Visual FoxPro. Si desea salir de la aplicación, la rutina puede cerrar archivos abiertos, limpiar el entorno de Visual FoxPro y luego ejecutar QUIT . Si no desea salir de la aplicación actual, la rutina puede devolver el control a la aplicación.
ON SHUTDOWN fvsalida ()
ON ERROR DO Errores WITH ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
DO FORM ingreso
READ EVENTS && detiene el programa aqui
&& Los Comandos de la parte inferior sn los que se ejecutan cuando ejecutamos salir
_SCREEN.Picture= ""
release all
close all
clear program
clear memory
clear all
IF VERSION(2) <> 0
IF VERSION(3) = "34" && Española
KEYBOARD '{ALT+A}1'
ELSE
KEYBOARD '{ALT+F}1'
ENDIF
ENDIF
ON ERROR && Restaurar el controlador de errores del sistema
ON SHUTDOWN && cancelar el primer ON SHUTDOWN
PROCEDURE fvsalida
iNumeroFormas=_SCREEN.FORMCOUNT
FOR i=iNumeroFormas TO 1 STEP -1
_SCREEN.FORMS(i).RELEASE
ENDFOR
ENDDO
¿Por qué? Debido a que el comando ON SHUTDOWN todavía está en efecto. En vez de cerrer, VFP está ejecutándo únicamente un CLEAR EVENTS, esto no tiene efecto si està en el ambiente de desarrollo y no hay ningun programa corriendo.
Para evitar esto, regrese a su aplicación, y agregue una vez más el comando ON SHUTDOWN. Esta vez, sólo ponga ON SHUTDOWN. Ponga esto en el código de limpieza, esto es, en algún lugar después de READ EVENTS. Su efecto será el de cancelar el primer ON SHUTDOWN.