FoxPro/Visual FoxPro - majeno de menu

   
Vista:

majeno de menu

Publicado por deysi (17 intervenciones) el 10/12/2013 00:33:31
ESTIMADOS AMIGOS FOXEROS, TENGO UNA CONSULTA..
MI APLICATIVO TIENE UN MENU GENERAL CON LAS OPCIONES CORRESPONDIENTES
SI EJECUTO UN OPCION, LLAMA AL FORMULARIO CORRESPONDIENTE, PERO
EL MENU GENERAL SIEMPRE SE DESACTIVA,
LA PREGUNTA ES COMO PUEDO HACER QUE CADA VEZ QUE EJECUTE UNA OPCION
DEL MENU, ESTE, SIGA ACTIVADO, DE TAL FORMA PUEDA LLAMAR OTRA OPCION SIMULTANEA
DEL MENU ??
ESPERO SUS COMENTARIOS. DESDE YA, QUEDO AGRADECIDA..

DEYSI F.
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

majeno de menu

Publicado por Fidel José (558 intervenciones) el 10/12/2013 13:25:35
Se desactivan las opciones de menu cuando llamas a un formulario modal (Windowtype=1). Si quieres tener funcionalidad, emplea, en lo posible, formularios "modeless" o normales (Windowtype=0). Para evitar que se llame dos o más veces al mismo formulario, deberás utilizar un método de desactivación del item de menú correspondiente.
Ejemplo: utilizo un public array para cada rama de menú
1) En al prg de inicialización, declaro
public array mnArchivos(12) && el valor de cada item del array es .F.
2) Edito el menu y en Skip for, establezco la dependencia, p.ejemplo, mnARchivos[1]
3) En el formulario que corresponde al item editado, evento LOAD, mnArchivos[1]=.T., Evento UNLOAD mnArchivos[1]=.F.
Cuando se llama al formulario en cuestión, el item se desactiva, pero todo el resto del menú sigue operativo.

Mi consejo:
Evita en lo posible la utilización de formularios modales
Utiliza formularios modales cuando necesitas devolver un valor o escoger una alternativa y no quieres que el usuario haga otra cosa que eso.
Cuando uses formularios modales, asegúrate de que MinButton=.F. y MaxButton=.F.
La propiedad WindowType se puede establecer en el init del form (antes de que se muestre), por lo que lo puedes pasar como parámetro cuando entiendas que un formulario puede necesitar ambos estados, según el punto de interfase o la función que deba cumplir:
*Init Event:
LPARAMETERS xnWindowType
with thisform
.WindowType=Evl(xnWindowType,0) && si se omite el parámetro, asume el valor cero.
.MaxButton=iif(.WindowType=0,.t.,.f.)
.MinButton=iif(.WindowType=0,.t.,.f.) && MinButton sera .F. si WindowType#0
endwith
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

majeno de menu

Publicado por deysi (17 intervenciones) el 10/12/2013 23:58:46
Gracias Fidel.. me sirvio de mucho.

LARGA VIDAAAAAA AL ZORROO....!!!
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