FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Menus configurables en el SYSMENU de una ventana
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Menus configurables en el SYSMENU de una ventana
Posted: Sun Feb 17, 2008 06: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.

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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Menus configurables en el SYSMENU de una ventana
Posted: Sun Feb 17, 2008 06: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

Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Menus configurables en el SYSMENU de una ventana
Posted: Sun Feb 17, 2008 07: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.

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
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Menus configurables en el SYSMENU de una ventana
Posted: Sun Feb 17, 2008 08: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.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Menus configurables en el SYSMENU de una ventana
Posted: Mon Feb 18, 2008 11:58 AM
JM,

Añadir lo puedes hacer así:
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
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Menus configurables en el SYSMENU de una ventana
Posted: Mon Feb 18, 2008 09:01 PM
Antonio Linares wrote:Añadir lo puedes hacer así:
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"


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

Continue the discussion