FoxPro/Visual FoxPro - Cerrar un formulario ¿¿¿???

 
Vista:

Cerrar un formulario ¿¿¿???

Publicado por Andrea (325 intervenciones) el 15/02/2009 15:40:19
Hola a todos

El famoso programa esta empezando a funcionar bien, solo que ayer, adelante del cliente, al hacer una prueba de salir del formulario se trabó y no había forma de sarlir del formulario (no se colgó, sino que no salía)

Yo utilicé la frasé: "Si Bill Gates tuvo problemas con Win98 en la presentación, ¿cómo no voy a tenerlos yo..." ja ja ja

Ahora hablando en serio, revisé el código y aparentemente no hay problemas.

Solamente sale por el TEXTBOX donde al presionar ESC aparece un cartel de confirmación de salida
(Eso se muestra bien, por lo que hasta ahí llega correctamente)

Luego viene la instrucción THISFORM.RELEASE.. y nada más...

La pregunta es:

¿QUÉ COSA (evento, método, etc) PODRÍA TRABAR LA EJECUCIÓN DE UN THISFORM.RELEASE??

(tal vez haya alguna instrucción que la trabe y yo no lo sé)

Muchas gracias!!!!

Andy
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Cerrar un formulario ¿¿¿???

Publicado por kong (682 intervenciones) el 15/02/2009 17:18:17
hola.
es algo dificil saber a simple vista cual es el error.
por eso antes de hacerla funcionar ante el cliente hay que "darle contra el piso" para detectar errores.
yo solía llevar el programa a los empleados, a niños, a familiares, que lo moniara sin preocuparse si se daña. Y que ellos anotara cualquier cosa que sucedia.

.........................

para este problema,

Que mensaje te sale?
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:Cerrar un formulario ¿¿¿???

Publicado por Andrea (325 intervenciones) el 15/02/2009 18:17:41
Si, eso es lo ideal o de libro, pero si tienes tiempo.

En mi caso, como el programa es "personalizado", lo voy armando y se lo voy mostrando porque es un cliente muy detallista (Hasta pidió los colores de los formularios!!!)

En fin...

En el error no aparece ningún mensaje. Queda "enganchado" en el textbox, aunque pasa por la instrucción THISFORM.RELEASE.

Para que tengas una idea. Si presionas Esc te aparece un Messagebox que pregunta si quieres salir.
Si le pones SI, no sale (aunque "pase" por la instrucción release).
Si vuelve a apretar vuelve a aparecer el cartel, pero sigue sin salir... y así.

También se pone en gris (deshabilitado) el botón [ x ] (Cerrar) del formulario así que no puedo hacer nada más que ctrl+alt+supr... :(

Gracias
Andy
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:Cerrar un formulario ¿¿¿???

Publicado por enrique (1041 intervenciones) el 15/02/2009 18:40:12
podes postear el codigo donde tenes el THISFORM.RELEASE
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Cerrar un formulario ¿¿¿???

Publicado por kong (682 intervenciones) el 15/02/2009 19:12:51
creo que tienes un
return .F.
en el lostfocus del textbox
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:Cerrar un formulario ¿¿¿???

Publicado por Andrea (325 intervenciones) el 15/02/2009 20:18:21
Bueno
En el KEYPRESS del FORMULARIO con la propiedad PREVIEW en .T. puse

DO CASE
CASE thisform.ActiveControl.name="CodClitxt" &&este es el textobox
__ NODEFAULTO
__ rta=MESSAGEBOX("¿Desea salir de este comprobante?",4+32+0,"Presionó ESC")
__ IF rta=6
_____SET CONFIRM off
_____THISFORM.RELEASE
__ENDIF

CASE....

ENDCASE

(saqué el código del KEYPRESS del objeto porque no funcionaba.. ¿se acuerdda de un post de la semana pasada?)

En el LOSTFOCUS tiene solamente esto

this.BackColor=RGB(255,255,255)
this.ForeColor=RGB(0,0,0)
thisform.lblaviso.Caption=""

Y en el VALID

DO CASE
...
CASE LASTKEY( )= 27
__RETURN .T.
...

ENDCASE
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Cerrar un formulario

Publicado por Mauricio (1541 intervenciones) el 15/02/2009 20:50:26
Andrea, para no cambiarte casi nada de lo que has hecho, prueba esto en el KEYPRESS del textbox:
*
DO CASE
CASE nKeyCode = 27 && ESC
IF MESSAGEBOX("¿Desea salir de este comprobante?",4+32+0,"Presionó ESC") = 6
WAIT WIND 'Presiono ESC....' time 2
THISFORM.RELEASE
ENDIF
*
OTHER
WAIT WIND ' DIFERENTE DEL ESC' TIME 2
ENDCASE
*
a mi me fuciona esta prueba....
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:Cerrar un formulario

Publicado por ANDRES CORTEZ M (162 intervenciones) el 15/02/2009 22:06:05
HOLA ANDREITA

El metodo destroy es cuando sale del formulario pregunta, no tienes nada alli
verifica ?

Para mi lo que pasa, es que cuando pincha en la [ X ] , Al perder el foco el text1 hace la validacion de que si esta en blanco vuelva el foco al text1. por eso no te funciona.

Prueba teniendo el foco en otro text o otro componente que no sea el text1donde hace la verificacion de la tecla ESC. Y picha en el boton [ X ] para ver si Sales.

Espero te Sirva

ACM
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
sin imagen de perfil

Cerrar un formulario desde un procedimiento

Publicado por ruben lavilla (3 intervenciones) el 09/12/2021 16:24:51
hola mauricio:

una consulta tengo la rutina de errores en un archivo de funciones en un procedimiento que lo llamo desde un formulario pero al darle release
con el codigo de aca abajo no sale del form sigue la ejecucion que puedo hacer?: solo sale si en el boton del form pto por una variable lok=.F., tcPrograma es el nombre del formulario que viene de Program(), desde ya muchas gracias

lavariable=lower(substr(tcPrograma,1,atc(".",tcPrograma,1)-1))
*!* * messagebox(lavariable)
FOR EACH myForm IN _SCREEN.FORMS
*messagebox(myForm.Name)
IF myForm.Name=lavariable
myForm.Release()

*myForm.release
*exit
* return lok
*return lok
*myForm.refresh
ENDIF
ENDFOR
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Cerrar un formulario ¿¿¿???

Publicado por kong (682 intervenciones) el 16/02/2009 00:50:36
con que finalidad tienes el lastkey()=27y luego el return .T.?

a mi modo de ver, se deberia de quitar todo el .valid, y poner la condicion en el keypress del form

....................................
DO CASE
CASE thisform.ActiveControl.name="CodClitxt" AND nKeyCode=27&&este es el textobox
__ NODEFAULT
__ rta=MESSAGEBOX("¿Desea salir de este comprobante?",4+32+0,"Presionó ESC")
__ IF rta=6
*****_____SET CONFIRM off
_____THISFORM.RELEASE
__ENDIF

CASE....

ENDCASE

....................................
y por supuesto que este es un form modal
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:Cerrar un formulario ¿¿¿???

Publicado por Andrea (325 intervenciones) el 16/02/2009 13:41:39
Gracias a todos

Voy a probar las distintas ideas y después les cuento.

Lo que pasa es que el código así está funcionando (salvo esas colgadas "aleatorias"... claro) :)

Gracias nuevamente y ni bien lo pruebe los pongo al tanto de todo
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:Cerrar un formulario ¿¿¿???

Publicado por jose camilo (805 intervenciones) el 16/02/2009 13:57:38
prueba en otra PC a veces windows estas dañado y te da errores inesperado en tu programa aunk la causa sea otra
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:Cerrar un formulario ¿¿¿???

Publicado por enrique (1041 intervenciones) el 16/02/2009 14:44:04
creo que el problema lo tenes en el Valid ya que al momento de ejecutar este evento la ultima tecla presionada no es "ESC" es el contenido del boton "Si" o "No"
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