Opcao Enable/Disable Menu Minigui

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Wellington
Usuário Nível 1
Usuário Nível 1
Mensagens: 41
Registrado em: 16 Jun 2008 13:17
Localização: Sao Paulo

Opcao Enable/Disable Menu Minigui

Mensagem por Wellington »

Olá, estou tentanto implementar uma rotina de acesso aos modulos de meu sistema atraves do menu porem nao estou conseguindo. Ao logar quero definir o que o usuario podera acessar ou não. Criei uma matriz com valores .T. e .F. e na definicao do menu informo o seguinte:

DEFINE MAIN MENU
POPUP "Cadastros"
ITEM "Clientes" ACTION CLIPRG() IF(aMENU[1]=.T.,ENABLE,DISABLE)
ITEM "Fornecedores" ACTION FORPRG() IF(aMENU[2]=.T.,ENABLE,DISABLE)
ITEM "Vendedores" ACTION VENPRG() IF(aMENU[3]=.T.,ENABLE,DISABLE)
END POPUP
END MENU

Desde já agradeço,
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Opcao Enable/Disable Menu Minigui

Mensagem por Toledo »

Wellington, tenta o seguinte:

Código: Selecionar todos

#include "minigui.ch"

Function main()

DEFINE WINDOW Form_1 ;
 AT 0,0 ;
 WIDTH 400 ;
 HEIGHT 200 ;
 TITLE 'Teste para Desabilitar Opções do Menu' ;
 MAIN 
 PRIV aMENU:={}
 AADD(aMENU,{"MENU1",.T.})
 AADD(aMENU,{"MENU2",.F.})
 AADD(aMENU,{"MENU3",.T.})

 DEFINE MAIN MENU
  POPUP "Cadastros"
    ITEM "Clientes" ACTION CLIPRG() NAME MENU1
    ITEM "Fornecedores" ACTION FORPRG() NAME MENU2
    ITEM "Vendedores" ACTION VENPRG() NAME MENU3
  END POPUP
 END MENU

END WINDOW
FOR i=1 TO LEN(aMENU)
  IF aMENU[i,2]
    MODIFY CONTROL &aMENU[i,1]. OF Form_1 ENABLED .T.
  ELSE
    MODIFY CONTROL &aMENU[i,1]. OF Form_1 ENABLED .F.
  ENDIF
NEXT
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return

//criei as funções abaixo só para não dar erro na compilação
//caso alguém queira compilar este exemplo
func cliprg()
retu nil

func forprg()
retu nil

func venprg()
retu nil
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder