Código: Selecionar todos
#include "button.ch"
#include "inkey.ch"
function Main()
local oMenu
// Ativa as ações do mouse
SET( _SET_EVENTMASK, INKEY_ALL )
// Ativa cores intensas no fundo
SetBlink(.f.)
// Torna o cursor do mouse visivel
mSetCursor(.T.)
// Limpa a tela
setColor( "w+/b" )
scroll()
// Aqui neste momento é criado o objeto menu
oMenu := Monta_Menu()
// Espera por um evento do menu e nao sai enquanto o usuario
// nao escolher o item 'sair' do menu
do while MenuModal( oMenu, 01, 24, 01, 79, "w+/b" ) != 999 ; enddo
return( NIL )
// A função a seguir é responsávl pela criação do menu retorna para o
// objeto oMenu o estado atual do menu, quando é escolhida uma opção
function Monta_Menu()
local oTopBar, oPopUp, oPopUp1, oItem, oItem1, oItem2
local cCorBar := "b*/w,w+/bg,b*/w,w+/bg,b*/w,b*/w"
local cCorItem := "w+/bg,b*/w,w+/bg,b*/w,w/bg,w+/bg"
// TopBar() cria o menu na posição indicada
oTopBar := TopBar( 0, 0, 79)
oTopBar:ColorSpec := cCorBar
// Cria um novo 'popup menu' chamado Arquivo e adiciona ele no objeto oTopBar
oPopUp := PopUp()
oPopUp :ColorSpec:= cCorItem
oTopBar:AddItem( MenuItem ( "&Arquivo", oPopUp, , "Opcoes de cadastro e alteracoes de registros..." ) )
// Aqui começa a adição de itens do menu 'Arquivo'
oItem := MenuItem( "Cadastro de &Clientes" ,{|| Alert("Clientes()") }, K_CTRL_C, "Mensagem do primeiro item...", 101)
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Cadastro de &Produtos" ,{|| Alert("Produtos()") }, K_CTRL_P, "Mensagem do segundo item...")
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Cadastro de &Forncedores" ,{|| Alert("Fornecedores()") }, K_CTRL_F, "Mensagem do terceiro item...")
oPopUp:AddItem( oItem )
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )
oItem :=MenuItem( "&Grupos de Produtos" ,{|| Alert("Grupos()") }, K_CTRL_G, "Mensagem do quarto item...")
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Contas &Bancarias", {|| Alert("Bancos()") }, K_CTRL_B, "Mensagem do quinto item...")
oPopUp:AddItem( oItem )
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )
oItem :=MenuItem( "Sai&r", {||.t.} , K_ALT_F4,"Abandona o aplicativo.", 999)
oPopUp:AddItem( oItem)
// Cria um novo 'popup menu' chamado Opcoes e adiciona ele no objeto oTopBar
oPopUp := PopUp()
oPopUp :ColorSpec:= cCorItem
oTopBar:AddItem( MenuItem ( "&Opcoes", oPopUp, , "Opcoes gerais do programa..." ) )
// Aqui começa a adição de itens do menu 'Opcoes'
// Cria novo menu popup debtro do outro, fazendo um sub-menu
oPopUp1 := PopUp()
oPopUp1 :ColorSpec:= cCorItem
oItem := MenuItem( "Opcoes do &Mouse",oPopUp1 )
oPopup:AddItem( oItem )
// Aqui os Itens do sub-menu "Opcoes do Mouse"
// Interessante notar que se o mouse ja esta habilitado, podemos
// desabilitar o item que faria isso, e vice-versa
oItem1 := MenuItem( "&Habilitar cursor do mouse" ,{|| mSetCursor(.t.), oItem1:Enabled := .f., oItem2:Enabled := .t.}, , "Habilita o cursor do mouse" )
oItem1:Enabled := .f.
oPopUp1:AddItem( oItem1 )
oItem2 := MenuItem( "&Desabilitar cursor do mouse" ,{|| mSetCursor(.f.), oItem2:Enabled := .f., oItem1:Enabled := .t. }, , "Desabilita o cursor do mouse" )
oPopUp1:AddItem( oItem2 )
// Retorna o estado de objeto TopBar para a função Main()
return ( oTopBar )