Menus configurables en el SYSMENU de una ventana

Menus configurables en el SYSMENU de una ventana

Postby JmGarcia » Sun Feb 17, 2008 6:27 pm

Dependiendo de cierta configuración desearía poder modificar en tiempo de ejecución el SysMenu de una ventana.
El SysMenu es el que sale pinchando en el icono de la ventana (arriba a la izquierda).
Añadir, quitar, etc... menús items.
Gracias.

Code: Select all  Expand view
DEFINE WINDOW oWnd
REDEFINE SYSMENU OF oWnd
   SEPARATOR
   MENUITEM oMenuItem1 PROMPT "&Añadir" ACTION Anadir()
   MENUITEM oMenuItem2 PROMPT "&Quitar"  ACTION Quitar()
   SEPARATOR
// Aqui desea añadir o no opciones del menu
ENDSYSMENU
ACTIVATE WINDOW oWnd

function Anadir()
// ¿ Que hacer ?
return nil

function Quitar()
// ¿ Que hacer ?
return nil
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Postby horacio » Sun Feb 17, 2008 6:55 pm

Yo lo hago de la siguiente manera. Defino distintas funciones con las opciones de menu que necesito y de acuerdo a las opciones que elige el usuario las cargo con oWnd : SetMenu( OpcionElegida() ). Espero te sirva
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby JmGarcia » Sun Feb 17, 2008 7:58 pm

horacio wrote:SetMenu( OpcionElegida() )
Pero OpcionElegida() que devuelve una cadena un array...
Por otro lado estoy con el SYSMENU, no con el menú de la ventana.
Mi ventana NO tiene menú como tal.

Image
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Postby horacio » Sun Feb 17, 2008 8:57 pm

Perdón, no leí bien pero de todas maneras creo que el funcionamiento es el mismo. Lo que devuelve la llamada a la funcion es el objeto Menu.
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby Antonio Linares » Mon Feb 18, 2008 11:58 am

JM,

Añadir lo puedes hacer así:
Code: Select all  Expand view
function Anadir()

   oWnd:oSysMenu:Add( TMenuItem():New( Time(),,,, { || MsgInfo( "click" ) } ) )
      
return nil      

En cuanto a quitar, cual quieres quitar ? El último añadido ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41469
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JmGarcia » Mon Feb 18, 2008 9:01 pm

Antonio Linares wrote:Añadir lo puedes hacer así:
Code: Select all  Expand view
function Anadir()
   oWnd:oSysMenu:Add( TMenuItem():New( Time(),,,, { || MsgInfo( "click" ) } ) )
return nil
A parte de esto lo quiero hacer en un SUBmenu.
Por ejejmplo dentro del menuitem "Seleccionar ventanas"
Image

Antonio Linares wrote:En cuanto a quitar, cual quieres quitar ? El último añadido ?
Quiero quitar si ningún orden, es decir el que me marquen o me venga bien segun lo programado.
De todas formas ¿ Como se quita el ultimo ?, con ese truco podria regenerar de nuevo el menú. Borrando-borrando-borrando hasta vaciar y añadiendo despues todos menos uno (el que no quiero).
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 27 guests