FoxPro/Visual FoxPro - Cerrar un formulario de Nivel Superior

 
Vista:

Cerrar un formulario de Nivel Superior

Publicado por joseph (5 intervenciones) el 29/08/2005 22:58:48
Hola amigos!!!

Bueno, el asunto es el siguiente: Tengo una aplicacion principal.scx que llama a otro formularios desde botones o un menu, ahora cuando abro un segundo formulario como por ejemplo el de "alumnos" este lo quiero cerrar y lo puedo hacer desde un boton "Salir" con el codigo: RELEASE THISFORM, o dandole click desde el boton cerrar que tiene todos los formularios en la barra de titulo, aqui todo va bien, pero yo hice un menu en cada uno de los formularios que llama el principal y si uttiliso el RELEASE THISFORM, me genera error. Como lo cierro a partir del menu??? ai utiliso "CLEAR EVENTS" se cierra absolutamente todo!!!

Gracias de antemeno!!!
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

Cerrar un formulario de Nivel Superior

Publicado por Rafael Araujo (1 intervención) el 26/01/2017 20:10:13
amigo release thisform es un comando o instruccion para uso de cierre de formularios de nivel superior y si estas usando formularios tipo general y los cierras usando este comando generaras error ademas clear events es un comando que limpia todos los eventos de operatividad del formulario de nivel superior para esto debes usar: para el cierre de un formulario interno THISFORM.RELEASE Y PARA LIMPIAR EVENTOS SOBRE ESTE Y SOLO SOBRE EL FORMULARIO QUE QUIERES CERRAR CLEAR READS.

espero te sirva de ayuda ( ahora debes definir si tu formulario principal es de nivel superior y definir los internos como formularios de segundo nivel)
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: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Cerrar un formulario de Nivel Superior

Publicado por Fidel José (657 intervenciones) el 27/01/2017 12:28:24
Rafael
No sé por qué trabajas de Dr. Frankenstein. El post es de 2005, ya casi 12 años. No creo que esté esperando ayuda.

De todos modos, el preguntante se refería a cómo cerrar un formulario ShowWindow=2 desde el menú y esto no se puede hacer con el inexistente RELEASE THISFORM, ni con Thisform.Release, porque Thisform es una referencia de objeto que solo puede utilizarse desde dentro del form.

Si desarrollamos la aplicación con binarios (scx, vcx ), para poder cerrar un formulario de nivel superior desde el menú (sin que implique cerrar la aplicación), hay 2 alternativas, que siempre están basados en un nombre público (variable pública o propiedad de screen, o propiedad de un objeto público.
1) Si el form es un scx, podemos hacer lo siguiente
ADDPROPERTY(_Screen,"oFrmPpal",null)
DO FORM FrmPpal NAME _screen.oFrmppal
Para cerrarlo desde el menú o cualquier otro lugar, excepto desde el formulario:
_Screen,oFrmPpal.Release

2) Si el form es una clase de una biblioteca vcx
ADDPROPERTY(_Screen,"oFrmPpal", NEWOBJECT("frmppal","MisClases.vcx") )
Para cerrarlo desde cualquier lado, excepto desde el mismo formulario:
_Screen.oFrmPpal = null

Lo que denominas como formularios internos, me imagino, son los que tienen la propiedad ShowWindow=1 (en formulario de nivel superior). Efectivamente, es la forma normal para un desarrollo MDI, donde el _screen se oculta.
Pero también se puede combinar una aplicación con una base en Screen y uno o más módulos que se instancian a partir de un form de nivel superior.
En general, podemos decir que todos los form, excepto los que deben ser ShowWindow=2, deberían tener la propiedad ShowWindow=1, salvo el caso en que trabajemos con el _screen Visible y algún formulario solo deba mostrarse en el _screen. El formulario con la propiedad ShowWindow=1 ignora este valor (lo asume como cero) si el formulario es llamado desde el _screen (Menú), o desde un formulario abierto desde el _screen.
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