Como usar menus no xHarbour?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Como usar menus no xHarbour?

Mensagem por clodoaldomonteiro »

Olá!

Tô migrando do clipper pro harbour e tô bolando em construir um menu no harbour.

Alguém tem alguma dica ou exemplo?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

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 )
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Vc pode usar tbem as funções de menu da VISUAL LIB.

http://www.sqllib.com.br/download.php?id=TOOLS

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como usar menus no xHarbour?

Mensagem por sygecom »

clodoaldomonteiro escreveu:Olá!

Tô migrando do clipper pro harbour e tô bolando em construir um menu no harbour.

Alguém tem alguma dica ou exemplo?
Vai usar alguma LIB GRAFICA ? se for usar em modo console pode usar como usava no clipper !
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder