FoxPro/Visual FoxPro - Menu que llama a formularios

 
Vista:

Menu que llama a formularios

Publicado por Giovanni Martinez (11 intervenciones) el 18/05/2001 23:17:11
Hola amigos, de antemano gracias por colaborarme con esta inquietud..
He buscado en toda la ayuda de VFP y en los programas de ejemplo pero no he encontrado respuesta a esto tan simple (Eso creo)

Mi aplicacion hace lo siguiente:

Activa un menu en la ventana principal de VFP (este lo cree con el asistente). desde cualquier opcion del menu activa formularios diferentes (lod form lo creo con codigo) y permite trabajar en el, eso funciona correctamente.

DEFINE CLASS FormularioBase AS Form
MaxButton = .T.
MinButton = .T.
Closable = .T.
Autocenter = .T.
Enabled = .T.
Caption = ""
ShowWindow = 1
Windowtype = 1
WindowState = 2
Visible = .T.
Docreate = .T.
Releasetype = 0
Keypreview = .T.
ControlBox = .F.
ENDDEFINE

Al activar el form desde el menu, el menu queda desactivado ya que la propiedad Windowtype = 1 lo establece como modal. Si esta propiedad tiene otro valor 0 el formulario no se comporta como activo.

al dar click en una opcion del menu ejecuta este procedimiento

Variable = CREATEOBJECT('FormularioBase')
Variable.Show()

Mis preguntas son:

Quiero activar cualquier formulario verlo y poder trabajar en el sin desactivar las otras opciones del menu o mejor sin que el formulario quede como modal. Tambien quiero desactivar la(s) opcion(es) que llamo a los formulario(s) activos. algo similar al programa de ejemplo de VFP Importadores Trastade ¿ Como lo tengo que hacer ?
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:Menu que llama a formularios

Publicado por wences (457 intervenciones) el 21/05/2001 10:41:40
Al tema de activar o desactivar opciones de menu es bastante simple , pero a la vez compleja ... para desactivar opciones puedes hacer algo asi ... en el menu:

DEFINE BAR 15 OF aplicacion PROMPT "Datos \<Negocio" ;
SKIP FOR vg_calculador or WEXIST('GCFX0010') or WEXIST('IMAGENES') or vg_central or WEXIST('GCFX0130') or WEXIST('GCFX0120');
MESSAGE "Consultar\Modificar Datos Negocio"

como ves tiene una condicion skip for y una serie de condiciones , ese skip puede ser mucho mas complicado ... ya que te permite usar combinaciones and , or , etc y clausulas iif , etc ... esto desactiva opciones ...

Pero tambien se puede hacer algo asi :

if !vg_central and _screen.activeform.ousua.tipoperacion#'8'
if empty(vg_suscribe)
DEFINE BAR 2 OF tratardatos PROMPT "\<Guardar" ;
SKIP FOR vg_verdatos='S' or !empty(m.endonde) ;
MESSAGE "Guardar los datos de la operación actual"

DEFINE BAR 3 OF tratardatos PROMPT "\<Eliminar" ;
SKIP FOR ( type(' _screen.activeform.clave')#'U' and ;
substr(_screen.activeform.clave,11,4)='PROV' ) ;
or vg_verdatos='S' or !empty(m.endonde);
MESSAGE "Eliminar la operación actual"
endif

etc ... , esto permite que algunas opciones se definan o no en el menu segun las condiciones que nos interesen ... en principio no es demasiado complicado , eso si , tendrias que currartelo ...

EL problema del formulario es logico , solo le estas diciendo que se mustre (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

Notita

Publicado por wences (457 intervenciones) el 21/05/2001 11:33:58
Si no quieres usar el do form o no puedes , puedes usar lo siguiente , en el init del formualrio cambiale el windowtype de modal a normal , con eso solucionas el tema del menu y del formulario ...

Espero te sirva de algo ...
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