FoxPro/Visual FoxPro - Ojo a este codigo

   
Vista:

Ojo a este codigo

Publicado por many (332 intervenciones) el 05/01/2013 04:02:59
Saludo,
Al salir de un .exe me dice esto:
Cannot Quit Visual Foxpro

Este es el código de mi prg principal

SET DEFAULT TO c:\cabanas

SET TALK OFF
SET DELETED ON
SET CENTURY ON
SET DATE TO BRITISH
CLOSE ALL

PUBLIC M.NUMUSU,M.USUARIO,m.desde,m.hasta,m.us

M.NUMUSU=0
M.USUARIO= " "
m.us = " "

DO FORM c:\cabanas\acceso
READ EVENTS

Nota:
Acceso es mi primer formulario donde hay que poner usuario y clave para entrar al sistema y luego este llama al menú.

Cuando salgo del menu el sistema regresa al form acceso y este hay tres botones

entrar (con el que llama al menu)
salir

en el boton salir tengo esto:

CLEAR EVENTS
Close All
QUIT

No se que esta pasando.
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

Ojo a este codigo

Publicado por Fidel (320 intervenciones) el 05/01/2013 14:17:18
Prueba lo siguiente:

En el programa principal, escribe un procedure de cierre.

PROCEDURE CIERRE()
***************************
CLEAR EVENTS
Close All
QUIT
ENDPROC

En el formulario acceso.
Agrega una propiedad, por ejemplo
thisform.addproperty("cerrar",.f.)
* Esta propiedad tiene sentido si el formulario ACCESO se cierra para acceder al sistema
* Si en lugar de cerrarlo queda como Hide, no será necesaria

En el botón "salir" del FORM ACCESO, Evento Click
*Acá Puedes agregar un
nMess=Messagebox("Desea salir del sistema?",4,"Cerrando")
if nMess#6
return
endif
thisform.Cerrar=.T.
thisform.Release
******************************************
En el Unload del FORM ACCESO
IF THISFORM.cerrar
Cierre()
endif
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

Ojo a este codigo

Publicado por neo (1601 intervenciones) el 05/01/2013 15:15:49
Quieres salir desde el boton "x" de vfp? te voy a mandar un ejemplo de como lo puedes hacer.

Saludos
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

Ojo a este codigo

Publicado por es_binario (757 intervenciones) el 05/01/2013 16:51:59
Mira observando el codigo, tod
o puede deberse a la ventana principal de _screen de foxpro que me imagino llamas de tu form principal. o tal vez no uses, y si no la usas ese es el problema por que la uses o no, siempre esta presente, es la base de vfp

de todas formas la solucion simple seria el siguiente codigo en tu boton salir.

1
2
3
4
5
6
7
8
9
TRY
	CLEAR EVENTS
	CLOSE ALL
	CLEAR ALL
	quit
CATCH
	quit
ENDTRY
	QUIT


prueba ese codigo, y fijate como te va...
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

ejemplo

Publicado por neo (1601 intervenciones) el 05/01/2013 20:13:26
Aqui te dejo un ejemplo de como Salir de VFP en las dos formas desde un formulario y desde la Ventana principal de VFP. Es un Ejecutable además de ser portable..

me cuentas si esto es lo que necesitas.....
Esta hecho en la Version 9 de VFP


Saludos

1.Ejemplo sin librerias (solo ejecutable, requiere version 9 de vfp)
http://205.196.123.180/k9wiqbbmkzjg/rv6p33gzfy3g7q4/Ejemplo+Salir+de+VFP.rar

2. ejemplo con librerias (solo descomprimir y listo)
http://199.91.152.94/ziu4i26tm6cg/3mm9j929jc8it21/Ejemplo+Salir+de+VFP+%28con+librerias%29.rar

Atte
Neo
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

ejemplo

Publicado por es_binario (757 intervenciones) el 05/01/2013 21:15:32
Del codigo que compartio neo con todos nosotros me resulta interesante esta parte:

1
ON SHUTDOWN DO salir.prg


del prg que inicia el programa... que completo seria asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SET OPTIMIZE ON
 SET ECHO OFF
 SET TALK OFF
 SET SAFETY OFF
 SET COLOR TO
 SET CLOCK STATUS
 SET HOURS TO 12
 SET CENTURY OFF
 SET DATE TO dmy
 SET DELETED ON
 SET NOTIFY OFF
 ON SHUTDOWN DO salir.prg
 LOCAL fxnewdir
 fxnewdir = JUSTPATH(SYS(16, 0))
 CD (fxnewdir)
 SET DEFAULT TO (fxnewdir)
 SET EXACT ON
 SET MULTILOCKS ON
 SET SYSMENU OFF
 _SCREEN.caption = "Ejemplo simple de como salir desde la ventana principal de vfp"
 _SCREEN.windowstate = 2
 _SCREEN.icon = "netplaces1.ico"
 _SCREEN.backcolor = RGB(255, 255, 255)
 DEACTIVATE WINDOW "Command"
 DEACTIVATE WINDOW "Estándar"
 _SCREEN.movable = .T.
 _SCREEN.fontsize = 10
 _SCREEN.fontname = "Tahoma"
 DO menu1.mpr
 READ EVENTS
 CLEAR EVENTS
ENDPROC


y la opcion salir

1
2
3
4
5
6
WAIT WINDOW TIMEOUT 1 "Cerrando Sistema..."
 CLOSE DATABASES ALL
 CLOSE TABLE ALL
 CLEAR ALL
 CLEAR EVENTS
 QUIT


pero tambien hay que mensionar que aqui funciona perfectamente por que en realidad no abre ninguna base de datos ni tampoco, la tiene que cerrar, por eso no no presenta ningun problema.

Tambien no abre un formulario, sino que abre el menu1, y el programa principal indica que se esta usando la _screen... talvez la solucion a todo tu problema, sea que uses la _screen pero en modo oculto _screen.hide = .T.

saludos y comenta
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

ejemplo

Publicado por neo (1601 intervenciones) el 05/01/2013 21:58:01
Me disculpas pero este ejemplo lo utilizo en todos mis proyectos desarrollados con formularios sin menu o con menu, ademas de utilizar base de datos nativa o mysql. Para finalizar, funciona perfectamente incluso con base de datos y tablas abiertas. Y sin screen de vfp o con el screen.

Este es el codigo que uso para inicio. Y vaya que me costo trabajo adecuarlo.
Solo lo realice en un proy aparte.

Atte
neo
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

ejemplo

Publicado por neo (1601 intervenciones) el 05/01/2013 22:13:58
Es_binario:
perdon, pero no estoy de acuerdo con tu ultima respuesta:

pero tambien hay que mensionar que aqui funciona perfectamente por que en realidad no abre ninguna base de datos ni tampoco, la tiene que cerrar, por eso no no presenta ningun problema.

Tambien no abre un formulario, sino que abre el menu1, y el programa principal indica que se esta usando la _screen..
.


Porque yo mismo lo he probado con bases de datos abiertas y con formularios que no tulizan el _screen de VFP ni el menú y siempre ha funcionado perfectamente, asi de sencillo sin tanto procedure y otras tantas cosas mas (solo con "ON SHUTDOWN DO salir.prg" puedo salir sin problemas).

Te invito a que me demuestres lo contrario, en el buen sentido de la palabra....

Saludos!
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

Ojo a este codigo

Publicado por many (332 intervenciones) el 05/01/2013 22:48:14
Saludo a todos,

Ya pude resolver, de toda manera agradezco el gran apoyo del foro frente al tema, así se patria y programadores.

este es mi prg principal

SET TALK OFF
SET DELETED ON
SET CENTURY ON
SET DATE TO BRITISH
CLOSE ALL
PUBLIC M.NUMUSU,M.USUARIO,m.desde,m.hasta,m.us
*,m.recibido,m.cambio,ruta

M.NUMUSU=0
M.USUARIO= " "
m.us = " "

DO FORM c:\cabanas\acceso
READ EVENTS

este es el boton salir del form.

CLEAR EVENTS
thisform.Release
CANCEL
QUIT

La verdad que invente un poco y así me sale bien

mil gracias
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

Ojo a este codigo

Publicado por Norberto Ariel (3 intervenciones) el 22/02/2013 13:28:36
Hola, lo probe y funciona, me explicarias que significan las lineas

CLEAR EVENTS
thisform.Release
CANCEL
QUIT


asi tengo una idea mas clara de como funciona.
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