FoxPro/Visual FoxPro - deshabilitar menu!!

 
Vista:

deshabilitar menu!!

Publicado por Rodrigo (9 intervenciones) el 16/01/2003 19:39:32
Hola!
como puedo evitar que se abra un formulario mas de una vez?
estuve intentando con el generador de menus (la opción saltar por...), pero no se "actualiza" en tiempo de ejecución.
algo así como:
cuando se abre el form: var_aviso=.t.
cuando se cierra el form: var_aviso=.f.
si var_aviso=.t.
menu deshabilitado
si no
menu habilitado

pero esto no funciona, si alguien tiene alguna técnica le agradecería su ayuda.
gracias
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

RE:deshabilitar menu!!

Publicado por jaime (32 intervenciones) el 17/01/2003 01:44:47
Hay varias formas de hacerlo, esta es una de ellas. Agregas una propiedad a la pantalla algo asi
_screen.addproperty('abierto',.f.)
en el load de la forma le pones
_screen.abierto = .T.
y en el unload de la forma le pones
_screen.abierto = .F.
con esto sabes si esta o no abierta la forma
y en el menu en options en elskip for le pones
_screen.abierto = .F.

eso te puede servir
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:deshabilitar menu!!

Publicado por TITO (356 intervenciones) el 17/01/2003 02:17:45
Otra forma es darle al formulario actual la propiedad modal, asi el usuario no podra ejecutar ningun evento hasta que salga del formulario, con esto restringes el accionar del usuario. (debe ser formulario de nivel superior (2) )
Que te vaya bien,
TITO
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:deshabilitar menu!!

Publicado por eleazar (40 intervenciones) el 18/01/2003 00:55:17
otra opcion es usando wexist(), a la form en el caption le pones un nombre y ren el menu le pones procedure en vez command donde le pones de la siguiente manera:

if wexist("elnombre")0=.f.
que te abra la forma
else
acitve form "elnombre"
endif

se me hace menos complicado
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:deshabilitar menu!!

Publicado por Jaime Cardona (32 intervenciones) el 22/01/2003 19:51:13
Lo puedes hacer de esta manera tambien con esto evitas que se abra mas de una vez el formulario
Espero te sirva

*Se pone la bandera en false
vforma = .F.
*con esto sabes si hay un formulario activa o no
IF TYPE("_screen.activeform.name") = "U"
vforma = .F.
* si no hay nin gun formulario abierto en tonces lo abres por eso se
* pone en false la bandera
ELSE
* si hay algun formulario abierto busca si ya esta abierto el de la opcion
* del menu
FOR x= 1 TO _SCREEN.FORMCOUNT
IF ALLT(_SCREEN.FORMS(x).NAME) == ALLT("formulario")
*se pone la bandera en true porque ya esta abierto
vforma = .T.
EXIT
ENDIF
ENDFOR
ENDIF
*si no esta abierto se abre el formulario
IF vforma= .F.
DO FORM formulario
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