Ajuda com Menus...
Enviado: 24 Jan 2007 10:57
Pessoal, bom dia!
Preciso de mais uma ajudinha... Peguei a rotina abaixo aqui mesmo do forum. Como nunca utilizei o clipper 5.3, estou me batendo um pouco com o menu. Pergunto: na rotina abaixo é possível acrescentar sub-menus? Como inibir a apresentacao de mensagens a cada opcao ou mudar a linha para sua apresentacao?
Obrigado a todos
Antonio Carlos
Preciso de mais uma ajudinha... Peguei a rotina abaixo aqui mesmo do forum. Como nunca utilizei o clipper 5.3, estou me batendo um pouco com o menu. Pergunto: na rotina abaixo é possível acrescentar sub-menus? Como inibir a apresentacao de mensagens a cada opcao ou mudar a linha para sua apresentacao?
Obrigado a todos
Antonio Carlos
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" )
cls
// Aqui neste momento é criado o 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
Set Color To
cls
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 é escolhido 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() }, K_CTRL_C, "Mensagem do primeiro item...", 101)
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Cadastro de &Produtos" ,{|| nItem:=oPopUp:Current,Alert("a"),oPopUp:Select(nItem)}, K_CTRL_P, "Mensagem do segundo item...")
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Cadastro de &Forncedores" ,{|| Alert() }, K_CTRL_F, "Mensagem do terceiro item...")
oPopUp:AddItem( oItem )
oPopUp:AddItem( MenuItem( MENU_SEPARATOR ) )
oItem :=MenuItem( "&Grupos de Produtos" ,{|| Alert() }, K_CTRL_G, "Mensagem do quarto item...")
oPopUp:AddItem( oItem )
oItem :=MenuItem( "Contas &Bancarias", {|| Alert() }, 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'
// 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.
oPopUp:AddItem( oItem1 )
oItem2 := MenuItem( "&Desabilitar cursor mouse" ,{|| mSetCursor(.f.), oItem2:Enabled := .f., oItem1:Enabled := .t. }, , "Desabilita o cursor do mouse" )
oPopUp:AddItem( oItem2 )
// Retorna o estado de objeto TopBar para a função Main()
return ( oTopBar)