dica novatos para criar menu
Enviado: 19 Nov 2009 10:03
// parece pouco mais achei mais facil entender assim o funcionamento do menu
// SIMPLES DICA PARA OS NOVATOS PARA CRIAR MENU e entender //
---
Nota da Moderação (Maligno):
A presente mensagem foi editada para a inserção das tags de indentação de código. Já é naturalmente difícil ler código alheio. Sem a devida indentação, essa tarefa se torna mais difícil ainda. Portanto, por favor, futuramente utilize essas tags.
// SIMPLES DICA PARA OS NOVATOS PARA CRIAR MENU e entender //
Código: Selecionar todos
//==========================================//
Function Loop_Menu()
PRIVATE Menu_1,Menu_2,Menu_3,Menu_4,Menu_5
private Tab_Menu,Loop_Menu,nkey,Op_Menu
private op_100,op_200,op_300,op_400,op_500
private op_101,op_102,op_103,op_104,op_104
private op_401,op_402
private op_501
//----------------
op_100:= 100
op_200:= 200
op_300:= 300
op_400:= 400
op_500:= 500
//---------
op_101:= 101
op_102:= 102
op_103:= 103
op_104:= 104
//------------
op_401:= 401
op_402:= 402
//------------
op_501:= 501
//==============//
MenuMain= WVW_CreateMenu()
Menu_1:= WVW_CreateMenu()
// Menu_2:= WVW_CreateMenu()
// Menu_3:= WVW_CreateMenu()
Menu_4:= WVW_CreateMenu()
Menu_5:= WVW_CreateMenu()
//--------------//
Tab_Menu:={}
aadd(Tab_Menu,Menu_1)
aadd(Tab_Menu,op_200)
aadd(Tab_Menu,op_300)
aadd(Tab_Menu,Menu_4)
aadd(Tab_Menu,Menu_5)
//====== MenuMain
WVW_AppendMenu( MenuMain, MF_ENABLED + MF_POPUP, Menu_1, "1- Cadastros" )
WVW_AppendMenu( MenuMain, MF_ENABLED + MF_POPUP, Op_200, "2- Movimento" )
WVW_AppendMenu( MenuMain, MF_ENABLED + MF_POPUP, op_300, "3- Mov.Anterior")
WVW_AppendMenu( MenuMain, MF_ENABLED + MF_POPUP, Menu_4, "4- Gerenciais")
WVW_AppendMenu( MenuMain, MF_ENABLED + MF_POPUP, Menu_5, "5- Utilitarios")
//====== Menu_1
WVW_AppendMenu( Menu_1, MF_ENABLED + MF_STRING, op_101, "1- Config" )
WVW_AppendMenu( Menu_1, MF_ENABLED + MF_STRING, op_102, "2- Empresas" )
WVW_AppendMenu( Menu_1, MF_ENABLED + MF_STRING, op_103, "3- Usuarios" )
WVW_AppendMenu( Menu_1, MF_ENABLED + MF_STRING, op_104, "4- Clientes" )
//====== Menu_4
WVW_AppendMenu( Menu_4, MF_ENABLED + MF_STRING, op_401, "1- Status" )
WVW_AppendMenu( Menu_4, MF_ENABLED + MF_STRING, op_402, "2- Clientes")
//====== Menu_5
WVW_AppendMenu( Menu_5, MF_ENABLED + MF_STRING, op_501, "1- Reorganiza" )
//============ OUTRAS FUNCOES PARA MENU ====================//
// wvw_EnableMenuItem(MenuMain,Num_ItemMenu,NumMod) // OK
// Num_mod= Enabled = 0, grayed = 1, disabled = 2
// wvw_DeleteMenu(Menu_A,1) // OK
// wvw_DestroyMenu(Menu_A) // NAO FOI
// wvw_getmenu() // obtem titulo do menu
// wvW_drawmenubar() // redesenha menu
// SETINKEYAFTERBLOCK({|nkey| AfterInkey(nkey)})
// wvw_nnumwindows()
// wvw_showwindow(nw,nmod)
// wvw_getwindowhandle()
// wvw_iclosewindows()
//----------------------------------------------------------------------------
wvw_setmenu(,MenuMain) // ativa o menu
setcursor(0) // desativa cursor
Loop_Menu:= .t.
do while Loop_Menu
wait ""
nkey:= lastkey() // so fazer com lasteky()
//-------------------------------------
if nkey= 1024 // aperto do mouse
Op_Menu:= WVW_GETLASTMENUEVENT()
//--
for n = 1 to len(Tab_Menu)
Op_Main:= Tab_Menu[n]
wvw_EnableMenuItem(MenuMain,Op_Main,1)
// torna opaco as opcoes do menu
next
wvW_drawmenubar() // redesenha menu
//TelaMenu:= savescreen(0,0,24,80,TelaMenu)
setcursor(1)
do case
//--------[ Menu_1- cadastros ]-------------
case Op_Menu >= Op_101 .and. Op_Menu <= Op_104
do case
case Op_Menu = Op_101
CONFIG()
case Op_Menu = Op_102
if nivel_usu < '3'
wvw_messagebox(,"Acesso nao Autorizado","Aviso",0) // msg_ok
else
CAD_EMP()
endif
case Op_Menu = Op_103
if nivel_usu < '3'
wvw_messagebox(,"Acesso nao Autorizado","Aviso",0) // msg_ok
else
USUARIOS()
ENDIF
case Op_Menu = Op_104
if nivel_usu < '3'
wvw_messagebox(,"Acesso nao Autorizado","Aviso",0) // msg_ok
else
CLIENTES()
ENDIF
endcase
//-----------[ Menu_2- Movimento ]---------------
case Op_Menu = OP_200
MOVI()
//----------[ Menu_3- Mov.Anterior ]--------------
case Op_Menu = Op_300
MOVI_ANT()
//----------[ Menu_4- Gerenciais ]----------
case Op_Menu >= OP_401 .and. Op_Menu <= Op_402
do case
case Op_Menu = Op_401
if nivel_usu < '3'
wvw_messagebox(,"Acesso nao Autorizado","Aviso",0) // msg_ok
else
REL_01()
endif
case Op_Menu = Op_402
REL_02()
endcase
//----------[ Menu_5- Utilitarios ]------------
case Op_Menu >= OP_501 .and. Op_Menu <= Op_501
do case
case Op_Menu = Op_501
if nivel_usu < '3'
wvw_messagebox(,"Acesso nao Autorizado","Aviso",0) // msg_ok
else
UTIL_01()
endif
endcase
endcase // fim case do MenuMain
//restscreen(0,0,24,80,TelaMenu)
for n = 1 to len(Tab_Menu)
Op_Main:= Tab_Menu[n]
wvw_EnableMenuItem(MenuMain,Op_Main,0)
// ativa as opcoes do menu
next
wvW_drawmenubar() // redesenha menu
SETCOLOR(COR0)
CLEAR
setcursor(0)
endif // fim do if tecla do mouse 1024
//----------------// saida do loop_menu
if nkey = 27
if(wvw_messagebox(,"Quer Realmente Sair do Sistema","Alerta",4)) = 6
Loop_Menu:= .f.
endif
endif
//----------------//
enddo // fim do loop_menu
return(nil)
//-------------------------------------
Nota da Moderação (Maligno):
A presente mensagem foi editada para a inserção das tags de indentação de código. Já é naturalmente difícil ler código alheio. Sem a devida indentação, essa tarefa se torna mais difícil ainda. Portanto, por favor, futuramente utilize essas tags.