FoxPro/Visual FoxPro - ¿como puedo ocultar un formulario hasta que se cierre otro?

   
Vista:

¿como puedo ocultar un formulario hasta que se cierre otro?

Publicado por esterlin (3 intervenciones) el 12/05/2014 22:01:38
lo que quiero es que mi menú principal se oculte hasta que el otro formulario se cierre

Lo puedo ocultar, pero no volver a mostrar utilizando este codigo:

DO FORM C:\Claro\Formularios\sub_menus\sub_busquedas.scx
thisform.Visible = .F.

y quiero que cuando ese formulario se cierre, el menú se haga visible nuevamente.

Además, si pongo thisform.release en uno de ellos se me cierran los dos formularios (el Menú y el otro) ¿qué me recomiendan qué haga?
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

¿como puedo ocultar un formulario hasta que se cierre otro?

Publicado por Fidel José (558 intervenciones) el 12/05/2014 23:50:55
1) Es importante sabe que ShowWindow tiene cada formulario.
Para lograr lo que pides, si el formulario del que se parte es ShowWindow=2, el secundario tiene que ser ShowWindow=2, porque de lo contrario, se ocultará junto con el primero.

2) Si el planteo correcto es:
2.1) tengo un form tipo ShowWindow=2, que funciona como base de la aplicación con un menú.
2.2) Tengo otro formulario showWindow=1 en el que se efectúan algunas tareas (se llama desde el menú del ppal)
2.3) Tengo un tercer formulario, ShowWindow=1 en el que se ejecutan algunas tareas (se llama desde el 2.2)
El formulario de 2.1 estará siempre visible (si no pierdo el acceso a la interface).

Para que se oculte el form 2.2) , en la llamada conviene pasar la referencia de objeto:
DO FORM Secundario.scx WITH THISFORM && nota que Thisform va sin puntos y sin comillas.

*<Init del Form 2.3>
LPARAMETERS xoForm
Addproperty(thisform ,"oform" , xoForm) && creamos una propiedad y le asignamos la referencia de objeto
xoForm.Hide() && esto oculta el formulario que lo llamó

*<Destroy del Form 2.3>
THISFORM.OFORM.SHOW() && Thisform.oform es la referencia de objeto al form (2.2).

Nota: Puedes trabajar con los nombres de los formularios si utilizas la cláusula NAME al llamarlos y creas una referencia pública. Por ejemplo;
Addproperty(_screen,"FrmPase",null)
do form FormPase.scx NAME _screen.FrmPase

Luego, en cualquier punto del sistema, puedes referirte a formPase como:
_Screen.frmPase.show() && o cualquier otra propiedad u objeto.

Recuerda que cuando llamas a un formulario desde cualquier procedure o event, no conocerás el nombre del mismo. El nombre contenido en la propiedad Name del formulario se utiliza solamente para los sistemas de errores y muchas veces son incompletos. El nombre del archivo scx es utilizado como nombre por defecto solamente cuando se ejecuta desde un Command de Menu. Pero si lo lanzas desde un procedure de Menu ya no funciona. Visual Fox crea su propio nombre interno.
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

Muchas gracias! me sirvió :)

Publicado por esterlin (3 intervenciones) el 15/05/2014 04:18:32
Muchas gracias! me sirvió :)
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 Antonio

¿como puedo ocultar un formulario hasta que se cierre otro?

Publicado por Mauricio Antonio (1368 intervenciones) el 13/05/2014 01:26:52
Al formulario sub_busquedas le pones WindowType = 1 (Modal)
luego:

THISFORM.visible = .f.
DO FORM C:\Claro\Formularios\sub_menus\sub_busquedas.scx
thisform.Visible = .T.

y te funcionara, comentalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

¿como puedo ocultar un formulario hasta que se cierre otro?

Publicado por jorge isaac (1 intervención) el 21/11/2015 20:04:01
Acabo de leer tu respuesta (Noviembre 2015) y como decimos en mexico cuando alguien es muy bueno en lo suyo....ERES UNA RIATA!!
gracias me sirvió excelente!!! 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

¿como puedo ocultar un formulario hasta que se cierre otro?

Publicado por Rodolfo (4 intervenciones) el 13/05/2014 20:56:49
Para ocultar un formulario yo uso este código:

thisform.hide
do formulario2.scx
thisform.show
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