In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Una de Menus

Foro público de Xailer en español
Responder
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Una de Menus

Mensaje por Martin Del Angel »

Hola que tal a todos!
Para los Gurus de Xailer .
Que tan posible es Implementar la Propiedad lVisible al Control TMenu().
Otros lenguajes tales como Visual Basic si tienen esa propiedad en el
control Menu
Si alguien sabe el truco , gracias de antemano
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Una de Menus

Mensaje por jlalin »

Martin,
para ocultar el menú:
SetMenu( oForm:Handle, Nil )
Y para mostrarlo:
SetMenu( oForm:Handle, oMenu:Handle )
Si quieres hacerlo con la propiedad lVisible:
CLASS TMenu FROM XMenu
PUBLISHED:
PROPERTY lVisible INIT .T. WRITE METHOD SetVisible
PUBLIC:
METHOD SetVisible( Value )
ENDCLASS
METHOD SetVisible( Value ) CLASS TMenu
::FlVisible := Value
SetMenu( ::oParent:Handle, IIF( Value, ::Handle, Nil ) )
RETURN Nil
No he probado este código y quizás necesite algún ajuste, pero deberí­a
funcionar.
Saludos,
José Lalí­n
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Una de Menus

Mensaje por Martin Del Angel »

On 2/16/2011 1:46 PM, José Lalí­n wrote:
> Martin,
>
> para ocultar el menú:
>
> SetMenu( oForm:Handle, Nil )
>
> Y para mostrarlo:
>
> SetMenu( oForm:Handle, oMenu:Handle )
>
> Si quieres hacerlo con la propiedad lVisible:
>
> CLASS TMenu FROM XMenu
>
> PUBLISHED:
> PROPERTY lVisible INIT .T. WRITE METHOD SetVisible
>
> PUBLIC:
> METHOD SetVisible( Value )
>
> ENDCLASS
>
> METHOD SetVisible( Value ) CLASS TMenu
>
> ::FlVisible := Value
> SetMenu( ::oParent:Handle, IIF( Value, ::Handle, Nil ) )
>
> RETURN Nil
>
> No he probado este código y quizás necesite algún ajuste, pero deberí­a
> funcionar.
>
> Saludos,
> José Lalí­n
>
Gracias Jose :
Lo voy a probar, te aviso como me fue.
Mil gracias
Saludos...
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Una de Menus

Mensaje por Martin Del Angel »

On 2/16/2011 4:37 PM, Martin Del Angel wrote:
> On 2/16/2011 1:46 PM, José Lalí­n wrote:
>> Martin,
>>
>> para ocultar el menú:
>>
>> SetMenu( oForm:Handle, Nil )
>>
>> Y para mostrarlo:
>>
>> SetMenu( oForm:Handle, oMenu:Handle )
>>
>> Si quieres hacerlo con la propiedad lVisible:
>>
>> CLASS TMenu FROM XMenu
>>
>> PUBLISHED:
>> PROPERTY lVisible INIT .T. WRITE METHOD SetVisible
>>
>> PUBLIC:
>> METHOD SetVisible( Value )
>>
>> ENDCLASS
>>
>> METHOD SetVisible( Value ) CLASS TMenu
>>
>> ::FlVisible := Value
>> SetMenu( ::oParent:Handle, IIF( Value, ::Handle, Nil ) )
>>
>> RETURN Nil
>>
>> No he probado este código y quizás necesite algún ajuste, pero deberí­a
>> funcionar.
>>
>> Saludos,
>> José Lalí­n
>>
>
>
>
> Gracias Jose :
>
> Lo voy a probar, te aviso como me fue.
>
> Mil gracias
>
> Saludos...
Hola José:
Probe solo SetMenu( oForm:Handle, Nil ) y funcionó
No exprese realmente lo que deseaba:
Quiero que cuando este corriendo la Aplicación poder eliminar en forma
dinamica elementos (items) de Tmenu.
Tal como se hace en diseño y que se auto-ajusta el Menu cuando eliminas
una opción o elemento (item).
Eso mismo pero poder hacerlo cuando el programa este en ejecución ,
atravez de una opción de configuración. como por ejemplo , eliminar el
Modulo de Ventas para que no sea visible.
Inventarios Compras Ventas Reportes Otras opciones .... Salir
La Opción de Ventas tiene un SubMenu.
Poder Eliminar la Opción de Ventas y que el Menu se Auto-Ajuste.
Que tan complicado es ?
Saludos....
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Una de Menus

Mensaje por jlalin »

Martin,
> Quiero que cuando este corriendo la Aplicación poder eliminar en forma
> dinamica elementos (items) de Tmenu.
Entonces, la manera más fácil es quí­tarlo con ::DeleteMenu(). Si el menú
principal es este:
Compras Ventas Otros
Y quieres eliminar la opción Ventas, sólo tienes que hacer
oMainMenu:DeleteMenu( 2 ) y andando.
Saludos,
José Lalí­n
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Una de Menus

Mensaje por ignacio »

Martin Del Angel escribió el mié, 16 febrero 2011 17:33Hola que tal a todos!
Para los Gurus de Xailer .
Que tan posible es Implementar la Propiedad lVisible al Control TMenu().
Otros lenguajes tales como Visual Basic si tienen esa propiedad en el
control Menu
Si alguien sabe el truco , gracias de antemano
Saludos...
Efectivamente es una opción que nos han pedido bastante a menudo. Te recomiendo que utilices el evento TMenuItem:OnCheckState. Revisaremos si es posible hacer algo al respecto ya que el principal problema es que el API de M$ para menúes no tiene esa posibilidad.
Un saludo
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder