Menu via Banco de Dados

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

HOR INFORMATICA
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 13 Ago 2011 18:45
Localização: SÃO PAULO - SP

Menu via Banco de Dados

Mensagem por HOR INFORMATICA »

Olá

Estou convertendo meus programas do clipper para Harbour com Minigui.
Montei um menu com matrizes que carrego de um banco de dados.
Para executar o action também mando carregar de uma matriz, só que não encontrei uma forma de recuperar o numero do item escolhido.

Alguem já teve esse problema ?

Um abraço a todos.
Nota de Moderação:
por Toledo: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo está mais relacionado com a MiniGui.
Editado pela última vez por Toledo em 15 Ago 2011 11:53, em um total de 2 vezes.
Razão: Mensagem editada para formatação de texto em letras minúsculas. Evite postar mensagens com texto TOTALMENTE EM LETRAS MAIÚSCULAS.<br>Veja as Regras do Fórum:<br>7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

MENU VIA BANCO DE DADOS

Mensagem por Toledo »

Amigo, seja bem-vindo ao Fórum!

Veja um exemplo:

Código: Selecionar todos

#include "hmg.ch"

Function Main

 public aMenu := { {"Cadastro",{{"Clientes","Func_op(1,1)","cadcli"},{"Produtos","Func_op(1,2)","cadpro"},{"Sair","Encerrar()","sair"}}} ,;
                 {"Consulta",{{"Vendas","Func_op(2,1)","conven"},{"Estoque","Func_op(2,2)","conest"}}} ,;
                 {"Ajuda"    ,{{"Help","MsgInfo('Help')"},{"Sobre","MsgInfo('Sobre')"}}}},;
                 cAction

 DEFINE WINDOW Win_1 ;
  AT 0,0 ;
  WIDTH 400 ;
  HEIGHT 400 ;
  TITLE 'Exemplo de Menu' ;
  MAIN 

  DEFINE MAIN MENU
    For nI=1 To Len(aMenu)
      POPUP aMenu[nI,1]
        nOp:=LEN(aMenu[nI,2])
        For nI2=1 To nOp
          cAction:=aMenu[nI,2,nI2,2]
          IF LEN(aMenu[nI,2,nI2])>2
            cNomeAction:=aMenu[nI,2,nI2,3]
            ITEM aMenu[nI,2,nI2,1] ACTION { || &cAction } NAME &cNomeAction
          ELSE
            ITEM aMenu[nI,2,nI2,1] ACTION { || &cAction }
          ENDIF
        Next
      END POPUP
    Next
  END MENU

 END WINDOW

 ACTIVATE WINDOW Win_1

Return

Func Func_op(nOpMenu,nOpSubMenu)
if nOpMenu=1
 if nOpSubMenu=1
  MsgInfo("Menu=Cadastro - SubMenu=Clientes")
 elseif nOpSubMenu=2
  MsgInfo("Menu=Cadastro - SubMenu=Produtos")
 endif
endif
if nOpMenu=2
 if nOpSubMenu=1
  MsgInfo("Menu=Consulta - SubMenu=Vendas")
 elseif nOpSubMenu=2
  MsgInfo("Menu=Consulta - SubMenu=Estoque")
 endif
endif
MsgInfo("Nome da Action: "+This.Name)
Return Nil

Func Encerrar()
Win_1.release
Return 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
HOR INFORMATICA
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 13 Ago 2011 18:45
Localização: SÃO PAULO - SP

Menu via Banco de Dados

Mensagem por HOR INFORMATICA »

Obrigado, Toledo, funcionou...

Abraço
Responder