TopBarMenu()
Moderador: Moderadores
TopBarMenu()
Olá!
Estou tentando compilar o meu sistema feito em Clipper 5.2 usando o HMG 3.0.35, seguindo as dicas do fórum (Pablo César). Só que não compila, dá erros de compatibilidade dos FOR...NEXT, pois utilizo quase sempre a mesma letra (FOR x=1 to <Alguma coisa>) e está informando que tem muitos FOR...NEXT com a mesma letra. Eu utilizo a mesma letra sempre depois de fechar a anterior, não é um for...NEXT dentro do outro, mas dá o erro assim mesmo.
Outra coisa que não compila é o uso da função TopBarMenu() que tirei de exemplos da internet mesmo. O que posso fazer para solucionar isso. Atualizando o HMG eu consigo contornar isso?
Abraços.
Estou tentando compilar o meu sistema feito em Clipper 5.2 usando o HMG 3.0.35, seguindo as dicas do fórum (Pablo César). Só que não compila, dá erros de compatibilidade dos FOR...NEXT, pois utilizo quase sempre a mesma letra (FOR x=1 to <Alguma coisa>) e está informando que tem muitos FOR...NEXT com a mesma letra. Eu utilizo a mesma letra sempre depois de fechar a anterior, não é um for...NEXT dentro do outro, mas dá o erro assim mesmo.
Outra coisa que não compila é o uso da função TopBarMenu() que tirei de exemplos da internet mesmo. O que posso fazer para solucionar isso. Atualizando o HMG eu consigo contornar isso?
Abraços.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
TopBarMenu()
Oi simoreira,
Sem ver o seu código, não tem como ajudar.
Você postou no lugar errado. Existe a seção Minigui para tratar de HMG ou Mnigui Extended.
Sem ver o seu código, não tem como ajudar.
Você postou no lugar errado. Existe a seção Minigui para tratar de HMG ou Mnigui Extended.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
TopBarMenu()
Estranho isto, se os For... Next não estão um dentro do outro, então não poderia dar algum erro apenas por definir a mesma variável. O problema deve ser outro.simoreira escreveu:Só que não compila, dá erros de compatibilidade dos FOR...NEXT
Veja o exemplo abaixo, compilei com o Harbour 3.2 sem problema algum (veja arquivo em anexo).simoreira escreveu:Outra coisa que não compila é o uso da função TopBarMenu() que tirei de exemplos da internet mesmo.
Código: Selecionar todos
#include "Button.ch"
#include "Inkey.ch"
PROCEDURE Main
LOCAL oTopBar := CreateMainMenu()
CLS
DO WHILE .T.
MenuModal( oTopBar , 1, ;
MaxRow(), 0, MaxCol(), ;
oTopBar:colorSpec )
ENDDO
RETURN
FUNCTION CreateMainMenu()
LOCAL oMainMenu := HBTopBarMenu():new( 0, 0, MaxCol() )
LOCAL bMenuBlock := {|o| MenuSelect(o) }
LOCAL cMenuColor := "N/BG,W+/R,GR+/BG,GR+/R,N+/BG,N/BG"
LOCAL aItems
oMainMenu:colorSpec := cMenuColor
aItems := { ;
{ " &Teste For...Next " , K_ALT_T , "Teste For Next" , 11 }, ;
{ " &Save " , K_ALT_S , "Save routine" , 12 }, ;
{ MENU_SEPARATOR, , , 13 }, ;
{ " E&xit " , K_ALT_X , "Exit program" , 14 } ;
}
CreateSubMenu( oMainMenu, " &File ", bMenuBlock, aItems )
aItems := { ;
{ " Cop&y " , K_CTRL_INS, "Copy routine" , 21 }, ;
{ " &Paste " , K_ALT_P , "Paste routine" , 22 }, ;
{ MENU_SEPARATOR, , , 23 }, ;
{ " C&ut " , K_ALT_U , "Cut routine" , 24 }, ;
{ " &Delete " , K_DEL , "Delete routine", 25 } ;
}
CreateSubMenu( oMainMenu, " &Edit ", bMenuBlock, aItems )
aItems := { ;
{ " &Info " , K_F1 , "Help routine" , 31 }, ;
{ " &About " , , "About program" , 32 } ;
}
CreateSubMenu( oMainMenu, " &Help ", bMenuBlock, aItems )
RETURN oMainMenu
FUNCTION CreateSubMenu( oMenu, cMenuItem, bBlock, aItems )
LOCAL aItem, oItem, oSubMenu
oSubMenu := PopUp():new()
oSubMenu:colorSpec := oMenu:colorSpec
FOR EACH aItem IN aItems
oItem := MenuItem():new( aItem[1], ;
bBlock , ;
aItem[2], ;
aItem[3], ;
aitem[4] )
oSubMenu:addItem ( oItem )
NEXT
oItem := MenuItem():new( cMenuItem, oSubMenu )
oMenu:addItem( oItem )
RETURN
PROCEDURE MenuSelect( oMenuItem )
@ 1, 0 CLEAR TO MaxRow(), MaxCol()
DO CASE
CASE oMenuItem:ID=11
TesteForNext()
CASE oMenuItem:ID=14
ExitRoutine()
OTHERWISE
Alert( oMenuItem:message )
ENDCASE
RETURN
PROCEDURE ExitRoutine
IF Alert( "Exit program?", { "Yes", "No" } ) == 1
QUIT
ENDIF
RETURN
PROCEDURE TesteForNext()
LOCAL nContFor:=0
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
For x=1 To 10
nContFor+=1
Next
Alert("Contador For Next: "+str(nContFor,4,0))
RETURNEste exemplo compilei seguindo este tutorial: Migrar Clipper para Harbour
Abraços,
- Anexos
-
demotopbarmenu.zip- (719.69 KiB) Baixado 441 vezes
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
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
TopBarMenu()
Prezado Toledo,
Obrigado pelas informações. Estava tentando usar a HMG sugerida pelo Pablo César, mas vou usar o que foi ensinado no link de migração. Depois posto o resultado.
Abraços!
Sérgio Moreira
Obrigado pelas informações. Estava tentando usar a HMG sugerida pelo Pablo César, mas vou usar o que foi ensinado no link de migração. Depois posto o resultado.
Abraços!
Sérgio Moreira
TopBarMenu()
Toledo,
Eu tentei compilar conforme o que foi postado no link, mas dá o seguinte erro:
Segue aparte do código onde chamo a função, copiado do Help do xHarbour (mas acho que cabe no Harbour, como no seu exemplo):
Depois, a parte que chama a TopBarMenu():
O que pode estar dando errado?
Abraço!
Eu tentei compilar conforme o que foi postado no link, mas dá o seguinte erro:
O que pode estar acontecendo?Generating C source output to '.hbmk\win\mingw\pgets.c'... Done.
Compiling 'proc1.prg'...
Lines 8357, Functions/Procedures 89
Generating C source output to '.hbmk\win\mingw\proc1.c'... Done.
Compiling 'proc2.prg'...
Lines 7877, Functions/Procedures 59
Generating C source output to '.hbmk\win\mingw\proc2.c'... Done.
Compiling 'proc3.prg'...
Lines 5326, Functions/Procedures 13
Generating C source output to '.hbmk\win\mingw\proc3.c'... Done.
Compiling 'relatori.prg'...
Lines 11753, Functions/Procedures 72
Generating C source output to '.hbmk\win\mingw\relatori.c'... Done.
Compiling 'tbutils.prg'...
Lines 644, Functions/Procedures 6
Generating C source output to '.hbmk\win\mingw\tbutils.c'... Done.
Compiling 'xls.prg'...
Lines 260, Functions/Procedures 7
Generating C source output to '.hbmk\win\mingw\xls.c'... Done.
.hbmk/win/mingw/funcoes.o:funcoes.c:(.data+0x2a08): undefined reference to `HB_F
UN_TOPBARMENU'
collect2: ld returned 1 exit status
hbmk2[conpecwin]: Erro: Executando linkeditor. 1
Segue aparte do código onde chamo a função, copiado do Help do xHarbour (mas acho que cabe no Harbour, como no seu exemplo):
Código: Selecionar todos
oTopBar := CreateMainMenu()
WHILE True
MenuModal( oTopBar , 1, ;
MaxRow(), 0, MaxCol(), ;
oTopBar:colorSpec )
ENDDO
Código: Selecionar todos
/*****
* Function CreateMainMenu()
* createmainmenu.prg
*****/
FUNCTION CreateMainMenu()
LOCAL oMainMenu := TopBarMenu():new( 1, 0, MaxCol() )
LOCAL bMenuBlock := {|o| MenuSelect(o) }
LOCAL cMenuColor := "N+/W,W+/N,GR+/W,GR+/N,W+/N,N+/W"
LOCAL aItems
oMainMenu:colorSpec := cMenuColor
aItems := { ;
{ " &Banco de Dados ", {|| pBcoCria()} , "Cria um diretório de dados para cada empresa cadastrada" , 100 }, ;
{ " &Gerais ", {|| pGerCad()} , "Cadastra os códigos de fazendas, comentários, categorias, etc." , 101 }, ;
{ " &Vacas ", {|| pVentre()} , "Manutençäo dos dados das vacas (ident, idade, pai, mäe, etc.)" , 102 }, ;
{ " &Touros ", {|| pTouro()} , "Cadastro das informaçöes dos touros (tat, apelido, registro, etc.)", 103 }, ;
{ " &Reprodução ", {|| pReprod()} , "Manutençäo dos dados de reproduçäo (inseminaçäo e monta)" , 104 }, ;
{ " &Nascimento ", {|| pNascimento()}, "Inclusäo do nascimento dos terneiros/bezerros" , 105 }, ;
{ " &Desmame ", {|| pDesmame()} , "Cadastro dos dados de desmame dos terneiros/bezerros" , 106 }, ;
{ " &Pós-Desmame ", {|| pPosDesm()} , "Cadastro dos dados de pós-desmame dos terneiros/bezerros" , 107 }, ;
{ " Animais de C&EIP ", {|| pCeip()} , "Opçöes para animais que receberäo CEIP" , 108 }, ;
{ " &Ultrassom ", {|| pUltrasom()} , "Manutenção dos dados importados de ultrassom" , 109 }, ;
{ " &Ocorrências ", {|| pOcorrenc()} , "Cadastro de ocorrências" , 110 }, ;
{ " R&astreabilidade ", {|| pRastreab()} , "Cadastro de informações para a rastreabilidade" , 111 }, ;
{ " &Inclui Pesagens ", {|| pPesagens()} , "Cadastro de até 36 pesagens por animal de acordo com seleçäo" , 112 }, ;
{ " A&casalamentos - PAD ", {|| pPad()} , "Programa de Acasalamentos Dirigidos - PAD" , 113 }, ;
{ " &Sair ", {|| Sair()} , "Sai do Sistema" , 114 } ;
}
CreateSubMenu( oMainMenu, " Ca&dastrar ", bMenuBlock, aItems )
aItems := { ;
{ " &Relatórios AVG ", {|| pConsAvg()} , "Consulta aos relatórios de avaliaçäo genética" , 200 }, ;
{ " Consulta &Touros ", {|| pConsTou()} , "Consulta nomes e registros de touros em arquivo GenSys", 201 }, ;
{ " &Ficha de Animal ", {|| pOpcFicha()}, "Consulta dados de vacas de produtos" , 202 } ;
}
CreateSubMenu( oMainMenu, " C&onsultar ", bMenuBlock, aItems )
aItems := { ;
{ " &Dados Avaliaçäo ", {|| pDadosAval()} , "Exporta os dados em arquivos para a avaliaçäo genética" , 300}, ;
{ " &Rastreabilidade ", {|| pExpImpRast()} , "Exporta/Importa dados para a rastreabilidade" , 302}, ;
{ " &Importar ", {|| pImportar()} , "Importa dados de arq. ultra-som e avaliaçäo genética" , 303}, ;
{ " &Transferências ", {|| pTransfAni()} , "Transfere e importa animais de uma fazenda para outra" , 304}, ;
{ " Imprime &Boletins ", {|| pImprBol(08,47,13,58,'ADV','GC')}, "Imprime boletins gerados pelo exp.dados de avaliaçäo genética",305} ;
}
CreateSubMenu( oMainMenu, " &Exp./Imp. ", bMenuBlock, aItems )
aItems := { ;
{ " &A.N.C. ", {|| pDadosAnc()}, "Emite relatórios para a ANC", 400} ;
}
CreateSubMenu( oMainMenu, " &Associaçäo ", bMenuBlock, aItems )
aItems := { ;
{ " &Organizar ", {|| pIndexa()} , "Organiza os arquivos de índice do sistema", 500},;
{ " Al&tera cores ", {|| pAltCor()} , "Altera as cores do sistema" , 501},;
{ " Calcu&ladora ", {|| fCalculadora()}, "Aciona a calculadora" , 502},;
{ " &Impressora ", {|| pImpressora()} , "Configura a impressora a ser utilizada" , 503};
}
CreateSubMenu( oMainMenu, " &Utilitários ", bMenuBlock, aItems )
RETURN oMainMenu
/*****
* Funcition CreateSubMenu()
* createsubmenu.prg
*****/
FUNCTION CreateSubMenu( oMenu, cMenuItem, bBlock, aItems )
LOCAL aItem, oItem, oSubMenu
oSubMenu := PopUp():new()
oSubMenu:colorSpec := oMenu:colorSpec
FOR EACH aItem IN aItems
oItem := MenuItem():new( aItem[1], ;
aItem[2], ; // bBlock , ;
, ; // aItem[2], ;
aItem[3], ;
aitem[4] )
oSubMenu:addItem ( oItem )
NEXT
oItem := MenuItem():new( cMenuItem, oSubMenu )
oMenu:addItem( oItem )
RETURN NIL
/*****
* Procedure MenuSelect()
* menuselect.prg
*****/
PROCEDURE MenuSelect( oMenuItem )
@ 1, 0 CLEAR TO MaxRow(), MaxCol()
SWITCH oMenuItem:ID
CASE 114
ExitRoutine() ; EXIT
// DEFAULT
// Alert( oMenuItem:message )
END
RETURN
/*****
*Procedure ExitRoutine()
* exitroutine.prg
*****/
PROCEDURE ExitRoutine
IF Alert( "Exit program?", { "Yes", "No" } ) == 1
QUIT
ENDIF
RETURN
Abraço!
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
TopBarMenu()
Sérgio, siga o meu exemplo da minha mensagem anterior, troque TopBarMenu por HBTopBarMenu.simoreira escreveu:O que pode estar acontecendo?
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
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
TopBarMenu()
Toledo, desculpe, desconsidere a mensagem anterior, encontrei o erro: usei TopBarMenu() em vez de HBTopBarMenu() como fizeste. Troquei e deu certo, compilou correto e abriu o sistema. Precisarei fazer uns ajustes, mas o que eu precisava já consegui! Inclusive um erro que dava no xHarbour já não acontece no Harbour, o que me deixou muito feliz, porque estava incomodado com isso, um problema que não acontecia no programam em Clipper aparecer no xHarbour! Vou explorar mais o Harbour e eliminar alguns problemas da versão Clipper, sendo um deles a questão da impressão em USB.
Muito obrigado pelas informações! E aviso: continuarei explorando os seus conhecimentos e dos demais!
A propósito, onde eu consigo uma documentação do Harbour para saber as funções e qual a sua sintaxe e uso. Eu tirei o exemplo do menu do HELP que baixei do Maligno, se não me engano. Como consigo algo parecido do Harbour?
Abraços e, mais uma vez, obrigado!
Sergio Moreira.
Muito obrigado pelas informações! E aviso: continuarei explorando os seus conhecimentos e dos demais!
A propósito, onde eu consigo uma documentação do Harbour para saber as funções e qual a sua sintaxe e uso. Eu tirei o exemplo do menu do HELP que baixei do Maligno, se não me engano. Como consigo algo parecido do Harbour?
Abraços e, mais uma vez, obrigado!
Sergio Moreira.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
TopBarMenu()
Pessoal implementei a mesma rotina e esta funcionando, porem só entra nas opções quando dou ENTER eu queria executar quando clicar no mouse.
alguma dica para fazer isso????
alguma dica para fazer isso????
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
