Page 1 of 1

Expandir automaticamente o menu no mesmo nivel

Posted: Tue Mar 11, 2008 3:05 pm
by yury
olá a todos,

é possível expandir o mesmo nivel de menu/submenu após executar a ação ?

após executar a ação, o menu é apagado da tela, e o usuário é forçado a escolher de novo no primeiro nível do menu

eu quero que o menu se expanda automaticamente no mesmo nivel

vejam o codigo:

Code: Select all

MENU oMenu
   MENUITEM "Customers"
     MENU 
        MENUITEM "Add New Customer"  
          MENU
             MENUITEM "Industry"   ACTION cInd() 
             MENUITEM "Commerce"   ACTION cCom()
             MENUITEM "Service"    ACTION cSer()
          ENDMENU    
        MENUITEM "View Profile"      ACTION cPrf()
     ENDMENU
   
   MENUITEM "Products"
     MENU
        MENUITEM "Add New Product"   ACTION pAdd()
        MENUITEM "View Profile"      ACTION pPrf()
     ENDMENU
ENDMENU
por exemplo, após executar a função cSer(), eu gostaria de mostrar o
menu

Code: Select all

'Customers'
   'Add New Customer'
      'Industry'
      'Commerce'
      'Service'
muito obrigado

abraços

Posted: Tue Mar 11, 2008 5:08 pm
by MGA
oMenu:end() //FINALIZA O OBJ DO MENU
...SUA FUNÇÃO PARA MONTAR O MENU NOVAMENTE
ownd:setmenu(omenu)
SysRefresh()



Espero ter ajudado

Posted: Tue Mar 11, 2008 6:17 pm
by yury
oMenu:end() //FINALIZA O OBJ DO MENU
...SUA FUNÇÃO PARA MONTAR O MENU NOVAMENTE
ownd:setmenu(omenu)
SysRefresh()

Espero ter ajudado
obrigado pela resposta, mas isto que vc postou é para reconstruir o menu...

oque eu quero é que, após executar a ação de um item do menu, ele abra novamente automaticamente na mesma posição onde estava, para que o usuário não tenha que selecionar desde o nivel inicial novamente...

de qualquer forma, muito grato pela sua atenção

um abraço

Posted: Tue Mar 11, 2008 7:26 pm
by Antonio Linares
Yuri,

Puedes probar con oWnd:oMenu:Hilite( <nOption> )

Posted: Tue Mar 11, 2008 7:57 pm
by yury
Yuri,

Puedes probar con oWnd:oMenu:Hilite( <nOption> )
_________________
regards, saludos

Antonio Linares
www.fivetechsoft.com
gracias Antonio, irei testar

saludos

Posted: Fri Apr 04, 2008 11:31 am
by giba_f
Poderia exemplificar com um demo, por favor, o uso do oWndIni:oMenu:Hilite( nOpcao ) ??

Obrigado !!!

Posted: Fri Apr 04, 2008 11:54 am
by Antonio Linares
Giba,

Revisa fwh\samples\TestMenu.prg

Posted: Sat Apr 05, 2008 4:47 am
by mmercado
Hola Antonio:
Antonio Linares wrote:Puedes probar con oWnd:oMenu:Hilite( <nOption> )
oMenu:Hilite(<nOption>) no expande el menú, yo lo he hecho con WM_SYSCOMMAND, como ejemplo la rutina principal de TestMenu.prg quedaría así:

Code: Select all

function Main()

   Local cAccel

   DEFINE WINDOW oWnd FROM 1, 5 TO 20, 70 TITLE "Testing Menus" ;
      MENU BuildMenu()

   oWnd:bMenuSelect = { || MsgBeep() }   // Do whatever on each menuitem
                                         // selection!

   #define WM_SYSCOMMAND 274   // 0x112
   #define SC_KEYMENU    61696 // 0xF100
   cAccel := "S"               // Some more...  menu item

   @ 4, 4 BUTTON "&Hilite Second Popup" SIZE 160, 25 OF oWnd ;
          ACTION SendMessage( oWnd:hWnd, WM_SYSCOMMAND, SC_KEYMENU, nMakeLong( Asc( cAccel ), 0 ) )

   @ 7, 4 BUTTON "&UnHilite Second Popup" SIZE 160, 25 OF oWnd ;
      ACTION oWnd:oMenu:UnHilite( 2 )


   SET MESSAGE OF oWnd TO FWVERSION + " - Menu Management Power"

   ACTIVATE WINDOW oWnd

return nil
Un abrazo.

Manuel Mercado

Posted: Sat Apr 05, 2008 9:00 am
by Antonio Linares
Manuel,

Gracias! :-)