Página 1 de 1

Opcao Enable/Disable Menu Minigui

Enviado: 10 Jul 2008 16:07
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,

Re: Opcao Enable/Disable Menu Minigui

Enviado: 13 Jul 2008 08:54
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,