Cerrar un formulario desde otro

3,443 views
Skip to first unread message

foxteban

unread,
May 10, 2011, 10:18:32 PM5/10/11
to Comunidad de Visual Foxpro en Español
Hola grupo

Tengo el caso que desde un form1 ingreso a otro form2 si las
condiciones son aceptable en el form2, ingreso a un aplicativo, desde
luego necesito cerrar el form1 y form2. El form2 no habria problemas
por que estoy ubicado en el y con solo poner thisform.release(), se
cierra este, pero como hago para cerrar en form1 ?

Bueno grupo, gracias por la ayuda
Les dejo un abrazo.

Esteban

Trento

unread,
May 11, 2011, 12:53:40 AM5/11/11
to Comunidad de Visual Foxpro en Español
MiFormulario.Release()



Saludos.

foxteban

unread,
May 11, 2011, 1:07:06 AM5/11/11
to Comunidad de Visual Foxpro en Español
Hola Trento

Gracias por responder pero te recuerdo, que estoy en el form2 y tengo
que cerrar desde este form2 el form1
Por que thisform.release() , tiene efectos en el form activo que en
este case es form2, pero debo cerrar el form1 desde el form2
Saludos
Esteban
> > Esteban- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Luis Mata

unread,
May 11, 2011, 1:37:30 AM5/11/11
to publice...@googlegroups.com
ponlo en MODAL el form

foxteban

unread,
May 11, 2011, 3:28:36 AM5/11/11
to Comunidad de Visual Foxpro en Español
Gracias a todos

Ya lo sulucione

Directamente desde el form1 llamo al form2, hago las verificaciones
necesarias si se cumplen, simplemente traigo una variable por ejemplo
"habilitado=.t." o "habilitado=.f.", segun corresponda , cierro form2
vuelvo a form1 y ejecuto o no el programa, y alli ya cierro form1.

Aveces, uno se complica, y la solucion es mas facil, de lo planteado.
Como dice el dicho "Para que lo vamos a hacer dificil si facil tambien
sale".

Una abrazo
Esteban
> >> - Mostrar texto de la cita -- Ocultar texto de la cita -

Victor Espina

unread,
May 11, 2011, 9:28:21 AM5/11/11
to publice...@googlegroups.com
Para el futuro, otra solucion habria sido:

_Screen,Forms(1).Release()

En el caso que Form2 no fuera modal.

La coleccion _Screen.Forms mantiene una referencia a todas las formas abiertas en un momento dado. Por ejemplo, para cerrar todas las ventanas abiertas harias:

DO WHILE _Screen.formCount > 0
 _Screen.Forms(1).Release()
ENDDO

o para cerrar una ventana en particular:

FOR EACH oForm IN _Screen.Forms
 IF oForm.Name = cFormName
  oForm.Release()
  EXIT
 ENDIF
ENDFOR

Saludos

Victor Espina

marcelobu...@gmail.com

unread,
May 11, 2011, 9:32:24 AM5/11/11
to publice...@googlegroups.com
Hola Esteban

Lo que te dice Victor es lo mas indicado y "profesional"

Saludos
MarceloBuenosAires
______________

2011/5/11 Victor Espina <vesp...@gmail.com>:

Trento

unread,
May 11, 2011, 11:25:02 AM5/11/11
to Comunidad de Visual Foxpro en Español
Amén los comentarios ya ofrecido por Víctor, Luis y Marcelo, como te
comenté, el emitir el comando:

MiFormulario.Relese()

Cerrará el form MiFormulario. Tomando tu ejemplo, desde Form2 puedes
poner, donde creas conveniente

Form1.Release()

Puedes tener más control, como verificar que efectivamente exista
Form1

IF WEXIST( 'FORM1')

Form1.Release()
ENDIF


Saludos.

P.D. Víctor, se me había pasado decirte: ¡ya se te extrañaba! Es bueno
tenerte de regreso. Ayer casi le jalo las orejas a Esparta por lo
mismo. Vamos a ver si regresa "la primera generación"... ya sabes, La
Coruña incluída ;-)

foxteban

unread,
May 11, 2011, 3:37:31 PM5/11/11
to Comunidad de Visual Foxpro en Español
Gracias Muchachos

Que fabuloso que es este foro, como colaboramos unos con otros aunque
por alli hay algunas puteaditas ja,ja pero sirve para fortalecer el
vinculo
Este foro va a hacer historia, no creo y no he visto otro foro con
tanta comunidad y altruismo de unos para con otros.
Nuevamente chicos, gracias
Les dejo un abrazo
Esteban
> > > - Mostrar texto de la cita -- Ocultar texto de la cita -
Reply all
Reply to author
Forward
0 new messages