Página 1 de 1

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 04:17
por JoséQuintas
Tentando ajudar na procura de um erro cheguei nesta situação:

fonte compilado com XHARBOUR, HWGUI 2.17 E BCC
Funciona normalmente

fonte compilado com HARBOUR, HWGUI 2.17 E MINGW
Dá erro
Até aqui, o teste foi numa máquina

Na minha máquina:

fonte compilado com hwgui atual, harbour mingw
ERRO

Cheguei numa situação inexplicável.
Parece que qualquer coisa removida encerra o erro.

Retirando 2 label simples, não dá mais erro.
Retirando isto, não dá mais erro
Retirando aquilo, não dá mais erro
Retirando uma STATIC FUNCTION QUE NÃO É USADA PRA NADA, não dá mais erro

O que vejo agora é que a questão deixou de ser remover o erro, mas tentar reduzir o fonte sem remover o erro.

Não entenderam?

Tem lá no fonte:

Código: Selecionar todos

STATIC FUNCTION blablabla()

   blablabla

   RETURN Nil
Removendo esse bloco o erro some.

Tem lá no fonte:

Código: Selecionar todos

@ 0, 0 SAY LABEL blablabla
@ 100, 0 SAY LABEL blablabla
@ 200, 0 say LABEL blablabla
Removendo os dois primeiros label, o erro some

Qualquer alternativa o erro some.
Remove um bloco e deixa o outro, o erro some.
Remove o outro e deixa o um, o erro some

O que tem essas linhas a ver com o erro ? À primeira vista NADA, mas o erro some.
Mas se deixar e remover em outro lugar, o erro some.

Tudo funciona normalmente com XHarbour + BCC
Acontece com Harbour + mingw

Do mesmo jeito que qualquer coisa removida o erro some, é de se imaginar que qualquer coisa acrescentada o erro poderá reaparecer.

Alguém já passou por alguma coisa assim ?

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 12:25
por JoséQuintas
hwgui.png
O erro é esse acima.
A linha do erro é no RETURN.

Código: Selecionar todos

ACTIVATE DIALOG oDlg

hwg_MsgInfo( "aqui fechou dialog" )

RETURN NIL
A chamada é pelo menu

Código: Selecionar todos

         MENUITEM "&Cadastro de banco" ACTION CAD_BANCO()
Erro na dialog ?
A princípio parecia, mas o hwg_MsgInfo() aparece normalmente sem erros.
O erro só acontece no RETURN.

Por pensar ser algo na dilaog que o fonte foi sendo enxugado.

Mas apagar fonte sem uso, ou apagar outro bloco e deixar o fonte sem isso... e o erro também desaparecer.... é de endoidar.

Faltam testes usando Borland C ou MSVC pra ver o que acontece.

Não tem muito o que mexer no fonte, porque no momento é a única comprovação do problema.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 13:03
por JoséQuintas
Novo teste:
Chamada assim

Código: Selecionar todos

      MENUITEM "&Cadastro de banco" ACTION { || CAD_BANCO(), hwg_MsgInfo( "teste" ) }
final assim:

Código: Selecionar todos

ACTIVATE DIALOG oDlg

hwg_MsgInfo( "aqui fechou dialog" )

RETURN NIL
A outra chamada não acontece.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 14:50
por alxsts
Olá!

Já vimos algumas situações onde se percebe que o Harbour parece ser mais exigente que o xHarbour. Nao aceita algumas coisas que o outro aceita. Mas, é muito estranho, principalmente o fato de funcionar removendo partes do código, aleatoriamente.

Mas a mensagem do erro diz o que está acontecendo: numa operação lógica, os operandos envolvidos tem que ser lógicos. Como é uma operação binária, exige dois operandos. Se está acusando este erro, um ou os dois operandos contém valor não lógico.

Tem alguma diretiva #ifdef _xharbour_ ou algo do tipo?
Está usando a chave -z nos parâmetros de compilação?

Acusa erro no comando RETURN... deve estar um pouco antes desta linha em algum bloco If...Endif.

Eu usaria o debugger...

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 15:20
por marcosgambeta
José,

Caso não tenha usado este parâmetro, experimente, por favor, compilar com o parâmetro -gc3:

Código: Selecionar todos

hbmk2 teste -gc3
Vai usar a VM do Harbour, mas de outra forma.

Embora os binários fiquem maiores com -gc3, a execução do código é mais rápida.

Nos meus testes aqui, o erro não ocorreu mais.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 15:43
por marcosgambeta
Alexandre,

Obrigado pelo interesse e pelas sugestões.

O código em questão envolve uma janela de diálogo com um controle tab e 10 abas. Cada aba com dezenas de controles. A biblioteca gráfica é a HWGUI v2.17.

Compilando normalmente (pcode), a função falha no encerramento. Quando chega no RETURN, onde as variáveis (LOCAL) são liberadas, aparece o erro citado. O erro não está ocorrendo em código xBase, pois não tem identificação de função e linha onde ocorreu. A impressão que fica é que a VM do Harbour falhou em processar a sequência de pcode's (mais de 34000).

Compilando o mesmo código, sem nenhuma alteração, com o parâmetro -gc3 (que gera código C e não pcodes), o erro não ocorre mais.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 15:58
por JoséQuintas
Justamente é o mesmo fonte, estava tentando ajudar.
Eu apenas fui reduzindo, até chegar em 500 linhas e 2 abas.
A partir daí, parece que qualquer parte que se apague some o erro.

Código: Selecionar todos

#include "hwgui.ch"

#include "hwgcompat.ch"

FUNCTION Main

   PRIVATE oMainWindow
   PRIVATE oFont := Nil, cImageDir := "..\image\"
   PRIVATE nColor, oBmp2

   INIT DIALOG oMainWindow TITLE "Example" AT 0, 0 SIZE 1920, 1080

   MENU OF oMainWindow
      MENU TITLE "&File"
      MENUITEM "&Cadastro de banco" ACTION { || CAD_BANCO(), hwg_MsgInfo( "teste" ) }
         MENUITEM "&Exit" ACTION hwg_EndDialog()
      ENDMENU
   ENDMENU

   ACTIVATE DIALOG oMainWindow

   RETURN Nil

#define DTM_SETFORMAT       4101

STATIC FUNCTION CreateC(oDlg)

   STATIC lFirst := .F.
   STATIC o

   IF !lFirst
      @ 50, 200 DATEPICKER o SIZE 80, 24
      lFirst := .T.
   ENDIF
   hwg_Sendmessage(o:handle, DTM_SETFORMAT, 0, "dd':'MM':'yyyy")

   RETURN Nil

STATIC FUNCTION TestProgres()

   LOCAL oDlg,ostatus,oBar
   LOCAL cRes, aCombo := {"First", "Second"}

   PRIVATE oProg

   INIT DIALOG oDlg TITLE "Progress Bar" AT 190, 10 SIZE 360, 240

   @ 10, 10 PROGRESSBAR oProg OF oDlg SIZE 200, 25 BARWIDTH 10 QUANTITY 1000

   ADD STATUS oStatus TO oDlg PARTS 400

   oBar   := HProgressBar():New(ostatus,, 0, 2, 200, 20, 200, 1000, hwg_Rgb(12, 143, 243),hwg_Rgb(243, 132, 143))
   oCombo := HComboBox():New(ostatus,,,, 65536, 0, 2, 200, 20,aCombo,,,,,,, .F., .F.,,,)

   @ 10, 60 BUTTON "Test" SIZE 100, 32 ON CLICK {||MudeProg(oBar)}

   ACTIVATE DIALOG oDlg

   RETURN Nil

STATIC FUNCTION MudeProg(ostatus)

   LOCAL ct := 1

   DO WHILE ct < 1001
      oProg:Step()
      ostatus:step()
      ++ct
   ENDDO

   RETURN Nil

   ******************

STATIC FUNCTION CAD_BANCO

   ******************
   LOCAL oGroup1_dup, oRadiobutton1_dup, oRadiobutton2_dup, oRadiobutton3_dup, oGroup2_dup, oBr1_dup, oButtonex1_dup
   LOCAL oDlg, oTIP, nTIP:=3, oREM, lREM:=.F., oLabel28, oLabel29
   LOCAL oNOSSONUM, oNSN, cNSN:='', oBLKnnf, lBLKnnf:=.F., oGroupUser, oBr1_usu, aPOS:={.T.,.T.,.T.}
   LOCAL oBr1_BanCCG, nCODban:=0, cDESban:='', lEspera:=.f., aBanCCG:={}
   LOCAL aCBL:={}, aSQL:={}
   LOCAL oCheck1, vCheck1:=.F., aRetUsuarios:={}, mI:=0, aFILctb:={}
   LOCAL oTxt_Limite_Rec, oLimite_Rec, nLIMITE_REC := 0 // Variaveis para limite de recebimento - 1860 - (16/01/2016) - Alexandre M.Soares
   LOCAL otxt_TAR_TED, oTAR_TED, nTAR_TED:=0, LI:=0
   LOCAL oHOMOFAST,lHOMOFAST:=.F.
   LOCAL oLB_CREDOR,oCODCRE,nCODCRE:=0,oCREDOR,cCREDOR:='',oOwnerbutton2,aCREDOR:={}
   LOCAL oCARSEG,cCARSEG:='',oLINSEG,nLINSEG:=0,oCOLSEG,nCOLSEG:=0,lbSEG,lbSEGCAR,lbEXTcol2
   LOCAL cCTA_CHEQUE_COMPENSADO:='',oCTA_CHEQUE_COMPENSADO,lbCTA_CHEQUE_COMPENSADO
   LOCAL oLABELMOEDA,oMOEDA,oOwnerbutton3,nMOEDA:=0,cMOEDA:="",aMOEDA:={}
   LOCAL oLabelVlr_outramoe,oVlr_outramoe,nVlr_outramoe:=0
   LOCAL oCNAB240, lCNAB240:=.F., aLSTBANCOCOBRANCA:={'001','021','033','041','104','237','341','637','746','756','748','999'},aLSTCNAB240:={'756','104','033'}
   LOCAL olbdigito
   LOCAL oFILIAL_ACESSO, oTODFILIAL, aFILIAL_ACESSO:={}, aTokens:={}, nSCAN:=0, lTODFILIAL:=.F., jI:=0
   LOCAL oFILIAL_ACESSO_CC, cFILIAL_ACESSO_CC:='MATRIZ'
   LOCAL lCaixaChequeDevolvido:= .F., oCaixaChequeDevolvido
   LOCAL lUtilizarCartao:= .F., oUtilizarCartao

   LOCAL nOrd:=0 //85520 - 24/02/2021 - Carlos Elizeu
   LOCAL oGroup1CHQ, oGroup2CHQ, oGroup3CHQ, oGroup4CHQ, ;
      oLine1, oLine2, oLine3, oLine4, oLine5, oLine6, ;
      oLabel1CHQ, oLabel2CHQ, oLabel3CHQ, oLabel4CHQ, oLabel5CHQ, oLabel6CHQ, oLabel7CHQ, oLabel8CHQ, oLabel9CHQ,oNAO_MOSTRA_DRE, ;
      oRadiobutton1, oRadiobutton2, oRadiobutton3, oRadiobutton4, ;
      oBTNver, oBTNres,oOCULTA_SAL,oLIMITE_PGTO,oSEMCHEQUE,oBCO_EMP, ;
      oVALlin, oFAVcol, oMEScol, oVALfnt, oVALcol, oEXTlin, oEXTcol, oEXTcol2, oFAVlin, oCIDlin, oCIDcol, oDIAlin, oDIAcol, oMESlin, oANOlin, oANOcol, oEXTfnt, oFAVfnt, oCIDfnt, oDIAfnt, oMESfnt, oANOfnt, oRdGAno, oRdGMes, oESP, ;
      nVALlin:=0,nFAVcol:=0,nMEScol:=0,nVALcol:=0,nEXTlin:=0,nEXTcol:=0, nEXTcol2:=0,nFAVlin:=0,nCIDlin:=0,nCIDcol:=0,nDIAlin:=0,nDIAcol:=0,nMESlin:=0,nANOlin:=0,nANOcol:=0,nESP:=0, ;
      nVALfnt:=1,nFAVfnt:=1,nCIDfnt:=1,nDIAfnt:=1,nMESfnt:=1,nANOfnt:=1,nRdGAno:=1,nRdGMes:=1, nEXTfnt:=2, ;
      aFNT:={'Normal','Condensado','Negrito'}, cSTATUS:='ATIVO', ;
      oGroup1, oEditbox1, oCombobox1, oLabel1, oLabel2, oEditbox2, oLabel3, oEditbox3 , ;
      oLabel4, oLabel5, oLabel6, oEditbox6, oEditbox7, oLabel7, oLabel8, oGroup2, oEditbox8, oEditbox9, oLabel9 , ;
      oLabel10, oEditbox10, oEditbox11, oCombobox2, oEditbox12, oLabel11, oLabel12, oLabel13, oLabel14, oEditbox13 , ;
      oEditbox14, oEditbox15, oLabel15, oLabel16, oLabel17, oEditbox16, oCombobox3, oLabel18, oLabel19, oLabel20 , ;
      oEditbox17, oEditbox18, oEditbox19, oButton1, oButton2, oCOD_BCO, btnOk, oTab, oSTATUS, oINSTRUCAO, oButtonex1_instrucao, ;
      oREMESSA_PAGFOR, oDATA_PAGFOR, oREM_DIA_PAGFOR,oPERFIL_CONV_PAGFOR, oREMESSA, oCENTROFORTES, ;
      oREMESSA_PAGFOR_HSBC, oDATA_PAGFOR_HSBC, oREM_DIA_PAGFOR_HSBC,oPERFIL_CONV_PAGFOR_HSBC, ;
      oAGE, oCC, oDIG_AGE, oDIG_CC, oCOD_TRM, oNEGRO, oESPACO_LINHAS, ;
      oCOD_CTB, cCOD_CTB:='', lNEGRO:=.F., lNAO_MOSTRA_DRE:=.F., cESPACO_LINHAS:='1/8', aESPACO_LINHAS:={'1/8','7/72','1/6'} , ;
      oCOD_CTB_CS, cCOD_CTB_CS:='', oGroup_CTB, oARREDONDA, lARREDONDA:=.t., ;
      vCODCXA := 0, vDESCRICAO := '', vAGE := "", vDIG_AGE := "", vCC := "", vDIG_CC := "", vEMAIL := '', ;
      vRUA:= '', vCPL:= '', vNUM:= '', vCID:= 'ALVORADA', vUF:= 'RS', vCEP:= '', vBAI:= '', vCEL:= '', vTEL:= '', vTEL1:= '', ;
      vFAX:= '', vOBS1:= '', vOBS2:= '', vOBS3:= '', vGERENTE:= '', vCGC := '', vIE := '', vSALDOINI:= 0, ;
      vTOTENT := 0, vTOTSAI:= 0, vSALDOATUAL:= 0, vDATAINI:= Date(), vDATAFIM:= Date(), vDATA:= Date(), ;
      vCOD_BCO:= 0, vNOME_BCO:= "OUTROS", vCARTEIRA:= '', vLIMITE:= 0, aTESTE_LAYOUT := {}, lOCULTA_SAL :=.F., lSEMCHEQUE:=.F., ;
      oLABEL100, oALTERDATA, nALTERDATA:= '', nALTERDATA_TEMP:='', lINSTRUCAO:=.F., nREMESSA :=0, nLIMITE_PGTO:=0, ;
      nREMESSA_PAGFOR:=0, dDATA_PAGFOR:= Ctod('//'), nREM_DIA_PAGFOR:=0,cPERFIL_CONV_PAGFOR:='', ;
   nREMESSA_PAGFOR_HSBC:=0, dDATA_PAGFOR_HSBC:= Ctod('//'), nREM_DIA_PAGFOR_HSBC:=0,cPERFIL_CONV_PAGFOR_HSBC:='', ;
   aINT_COB := {.F.,0,.F.,0,.F.,0,.F.,0,'',0}, cCOD_TRM:='', VNOME:='', XCOD:=0, NSEQSNN:=0 , ;
      oFILctb, cFILctb:='', oUSA_FILctb, lUSA_FILctb:=.F., oCOD_CED, cCOD_CED:='', oESPECIE_DOC, cESPECIE_DOC:='', ;
      oNAO_CTB, lNAO_CTB:=.F., oAPLICA, lAPLICA:=.F., oFILPAG, cFILPAG:='', oLabelFilialPagadora, ;
      oFILREC, cFILREC:='', oLabelFilialRecebedora, aItens2 :={"Outros"}, aItens_BCO :={"OUTROS"}

   //85520 - 06/02/2021 - Carlos Elizeu
   LOCAL oBrTaxas, ogbTaxas, nTaxas_ID:=0, oCOD_COMPR, cCOD_COMPR:='', oBAN_OF, lBAN_OF:=.F.
   LOCAL nSaldoAnt:=0, lConsolidado:=.F.,lBANCO_EMPRESTIMO:=.F.
   LOCAL oGroupExp, oLabelSwiftCode, oSwiftCode, oAccount, oLabelAccount, cSwiftCode:= "", cAccount:= "", oLabelNomeBancoIntermediario, oNomeBancoIntermediario, oLabelABACodeIntermediario, oABACodeIntermediario, oLabelSwiftCodeIntermediario, oSwiftCodeIntermediario, cABACodeIntermediario:= "", cNomeBancoIntermediario:= "", cSwiftCodeIntermediario:= ""
   LOCAL oBancoPdv, lBancoPdv := .f. // Jorge Fellipe
   LOCAL oLblSeq1, oLblSeq2, oSEQSNNI, oSEQSNNF, nSEQSNNI:=0, nSEQSNNF:=0, nCENTROFORTES:=0
   LOCAL oUSA_SpedFiscal, lUSA_SpedFiscal:=.F. // Acelerato - 193726 - Daniel Lopes Filho

   AAdd(aCBL,{.F.,'Local de Pagamento'    ,'',1,0})
   AAdd(aCBL,{.F.,'Vencimento'            ,'',1,77})
   AAdd(aCBL,{.F.,'Cedente'               ,'',3,0})
   AAdd(aCBL,{.F.,'Agencia/Cód. Cedente'  ,'',3,77})
   AAdd(aCBL,{.F.,'Data Docto.'           ,'',5,0})
   AAdd(aCBL,{.F.,'Nº Documento'          ,'',5,15})
   AAdd(aCBL,{.F.,'Especie DOC'           ,'',5,30})
   AAdd(aCBL,{.F.,'Aceite'                ,'',5,45})
   AAdd(aCBL,{.F.,'Data Processamento'    ,'',5,58})
   AAdd(aCBL,{.F.,'Nosso Número'          ,'',5,77})
   AAdd(aCBL,{.F.,'Uso do Banco'          ,'',6,0})
   AAdd(aCBL,{.F.,'Carteira'              ,'',6,10})
   AAdd(aCBL,{.F.,'Espécie'               ,'',6,25})
   AAdd(aCBL,{.F.,'Quantidade'            ,'',6,38})
   AAdd(aCBL,{.F.,'Valor'                 ,'',6,58})
   AAdd(aCBL,{.F.,'(=)Valor do Documento' ,'',6,77})
   AAdd(aCBL,{.F.,'Instruções'            ,'',7,0})
   AAdd(aCBL,{.F.,'(-)Desconto/Abatimento','',7,77})
   AAdd(aCBL,{.F.,'(-)Outras Deduções'    ,'',9,77})
   AAdd(aCBL,{.F.,'(+)Mora/Multa'         ,'',10,77})
   AAdd(aCBL,{.F.,'(+)Outros Acrécimos'   ,'',12,77})
   AAdd(aCBL,{.F.,'(=)Valor Cobrado'      ,'',13,77})
   AAdd(aCBL,{.F.,'Sacado'                ,'',15,0})
   AAdd(aCBL,{.F.,'Espaco Entre Boletos'  ,'',7,0})

   AAdd(aTESTE_LAYOUT,{VAL('1100.50')     ,'TESTE COM UMA LINHA NOS VALORES POR EXTENSO','ALVORADA',DATE()})
   AAdd(aTESTE_LAYOUT,{VAL('123124125.12'),'MATRIZ','ALVORADA',DATE()})
   AAdd(aTESTE_LAYOUT,{VAL('123124125.12'),'MATRIZ','ALVORADA',DATE()})
   AAdd(aTESTE_LAYOUT,{VAL('123124125.12'),'MATRIZ','ALVORADA',DATE()})
   AAdd(aTESTE_LAYOUT,{VAL('123124125.12'),'MATRIZ','ALVORADA',DATE()})

   AAdd(aFILctb,'MATRIZ')
   AAdd( aITENS_BCO, 'NENHUM' )

   AAdd(aFILIAL_ACESSO,{.T.,'MATRIZ','MATRIZ' } )

   IF Len(aBanCCG) = 0
      AAdd(aBanCCG,{0,''})
   ENDIF

   IF Empty(cFILctb)
      lUSA_FILctb:=.F.
   ELSE
      lUSA_FILctb:=.T.
   ENDIF

   INIT DIALOG oDlg TITLE "Cadastro de Bancos" ;
      FONT HFont():Add( '',0,-12,400,,,) ;
      AT 0,0 SIZE 685,640 CLIPPER NOEXIT ;
      STYLE DS_CENTER + WS_VISIBLE + WS_CAPTION + WS_SYSMENU

   LI:=30

   @ 0,0 TAB oTab ITEMS {} SIZE 679,590 ON GETFOCUS {|| oTab:SetFocus() } STYLE 0 +0

   BEGIN PAGE "Dados C&adastrais" of oTab

      @ 002,LI GROUPBOX oGroup1 CAPTION "Cadastro de Bancos"  SIZE 673,174 COLOR 16711680

      @ 305,LI+21 GET COMBOBOX oCombobox1 VAR vNOME_BCO ITEMS aITENS_BCO SIZE 290,20 TEXT DISPLAYCOUNT 30 ;
         TOOLTIP "Escolha o Nome do Banco"

      @ 131,LI+81 GET DATEPICKER oEditbox3 VAR vDATA SIZE 110,22 STYLE 2 ;
         TOOLTIP "Informe a Data de Abertura da Conta"

      @ 10,LI+114 SAY oLabel7 CAPTION "Saldo Inicial R$:"  SIZE 76,22 TRANSPARENT
      @ 131,LI+111 GET oEditbox6 VAR vSALDOINI PICTURE '@ 999,99' SIZE 100,22 ;
         FONT HFont():Add( '',0,-11,400,,,) ;
         ON INIT{|o| IIF(lConsolidado,o:disable(),o:enable())} ;
         TOOLTIP "Informe Saldo Inicial em REAIS da Conta" ;
         STYLE WS_BORDER

      @ 251,LI+114 SAY oLabel8 CAPTION "Limite da Conta:"  SIZE 97,22 TRANSPARENT
      @ 366,LI+111 GET oEditbox7 VAR vLIMITE PICTURE '@ 999,99' SIZE 100,22 FONT HFont():Add( '',0,-11,400,,,) STYLE WS_BORDER ;
         TOOLTIP "Informe Limite da Conta"

      @ 010,LI+144 SAY "Limite de Pgto:"  SIZE 97,22 TRANSPARENT
      @ 131,LI+141 GET oLIMITE_PGTO VAR nLIMITE_PGTO PICTURE '@ 999,99' SIZE 100,22 FONT HFont():Add( '',0,-11,400,,,) STYLE WS_BORDER ;
         TOOLTIP "Informe Limite de Pagamento que essa conta pode efetuar"

      @ 251,LI+144 SAY oTxt_Limite_Rec CAPTION 'Limite Recebimento:'  SIZE 76,22 TRANSPARENT
      @ 366,LI+141 GET oLimite_Rec VAR nLIMITE_REC PICTURE '@ 999,99' SIZE 100,22 FONT HFont():Add( '',0,-11,400,,,) STYLE WS_BORDER ;
         TOOLTIP "Informe Limite de Recebimento que essa conta pode efetuar"

      @ 250,LI+145 SAY otxt_TAR_TED CAPTION 'Tarifa do TED:'  SIZE 76,22 TRANSPARENT
      @ 330,LI+143 GET oTAR_TED VAR nTAR_TED PICTURE '@ 999,99' SIZE 100,22 ;
         FONT HFont():Add( '',0,-11,400,,,) ;
         TOOLTIP "Informe Tarifa do TED para este banco" ;
         STYLE WS_BORDER
      @ 255,LI+144 SAY oLabelVlr_outramoe CAPTION 'Saldo '  SIZE 60,22 TRANSPARENT ;
         ON INIT{|o| o:SHOW() }

      @ 343,LI+143 GET oVlr_outramoe VAR nVlr_outramoe PICTURE '@ 999,99' SIZE 100,22 ;
         FONT HFont():Add( '',0,-11,400,,,) ;
         ON INIT{|o| o:SHOW() } ;
         TOOLTIP "Saldo inicial moeda estrangeira" ;
         STYLE WS_BORDER

      @ 475,LI+145 SAY oLABELMOEDA CAPTION 'Moeda:'  SIZE 30,22 TRANSPARENT
      @ 520,LI+143 GET oMOEDA VAR cMOEDA PICTURE '@!' SIZE 60,22 ;
         FONT HFont():Add( '',0,-11,400,,,) ;
         TOOLTIP "Selecione a moeda de conversão do banco" ;
         STYLE WS_BORDER+WS_DISABLED

      @ 590,LI+142 OWNERBUTTON oOwnerbutton3 ;
         SIZE 024,024 ;
         FLAT ;
         BITMAP 1010 FROM RESOURCE  TRANSPARENT ;
         TOOLTIP 'Clique aqui para buscar uma moeda.'

      @ 002,LI+180 GROUPBOX oGroup2 CAPTION "Dados Complementares"  SIZE 673,255 ;
         COLOR 16711680

      @ 010,LI+206 SAY oLabel9 CAPTION "Endereço:"  SIZE 62,22 TRANSPARENT
      @ 073,LI+204 GET oEditbox8 VAR vRUA PICTURE '@!' SIZE 335,22 ;
         TOOLTIP "Informe o Endereço" ;
         STYLE WS_BORDER + ES_AUTOHSCROLL ;
         MAXLENGTH 50

      @ 10,LI+238 SAY oLabel11 CAPTION "Bairro:"   SIZE 42,22 TRANSPARENT
      @ 53,LI+236 GET oEditbox10 VAR vBAI PICTURE '@!' SIZE 126,22 ;
         TOOLTIP "Informe o Bairro" ;
         STYLE WS_BORDER ;
         MAXLENGTH 20

      @ 182,LI+238 SAY oLabel12 CAPTION "Cidade:"  SIZE 47,22 TRANSPARENT
      @ 230,LI+236 GET oEditbox11 VAR vCID PICTURE '@!' SIZE 140,22 ;
         TOOLTIP "Informe a Cidade" ;
         STYLE WS_BORDER ;
         MAXLENGTH 20

      @ 384,LI+238 SAY oLabel13 CAPTION "UF:"  SIZE 47,22 TRANSPARENT

      @ 487,LI+238 SAY oLabel14 CAPTION "Cep:"  SIZE 29,22 TRANSPARENT

      @ 10,LI+274 SAY oLabel15 CAPTION "Email:"  SIZE 40,22 TRANSPARENT
      @ 51,LI+272 GET oEditbox13 VAR vEMAIL  SIZE 178,22 ;
         TOOLTIP "Informe o Email" ;
         STYLE WS_BORDER + ES_AUTOHSCROLL ;
         MAXLENGTH 60

      @ 232,LI+274 SAY oLabel16 CAPTION "Telefone:"   SIZE 53,22 TRANSPARENT
      @ 287,LI+272 GET oEditbox14 VAR vTEL PICTURE '@!' SIZE 120,22 ;
         TOOLTIP "Informe o Telefone" ;
         STYLE WS_BORDER

      @ 10,LI+308 SAY oLabel18 CAPTION "Gerente:"  SIZE 52,22 TRANSPARENT
      @ 65,LI+306 GET oEditbox16 VAR vGERENTE PICTURE '@!' SIZE 164,22 ;
         TOOLTIP "Informe o Gerente da Conta" ;
         STYLE WS_BORDER ;
         MAXLENGTH 30

      @ 232,LI+308 SAY oLabel19 CAPTION "Carteira de Cobrança:"  SIZE 128,22 TRANSPARENT ;
         ON INIT{|o| o:HIDE(),.T. }
      @ 361,LI+306 GET COMBOBOX oCombobox3 VAR vCARTEIRA  ITEMS aITENS2 SIZE 130,22 TEXT ;
         ON INIT{|o| o:HIDE(),.T. } ;
         TOOLTIP "Informe o tipo de Carteira de Cobrança"

      @ 10,LI+337 SAY oLabel20 CAPTION "Observações:"  SIZE 80,22 TRANSPARENT

      @ 10,LI+363 GET oEditbox17 VAR vObs1 PICTURE '@!' SIZE 658,22 ;
         TOOLTIP "Informe aqui Alguma Observação" STYLE WS_BORDER + ES_AUTOHSCROLL MAXLENGTH 70

      @ 10,LI+386 GET oEditbox18 VAR vObs2 PICTURE '@!' SIZE 658,22 ;
         TOOLTIP "Informe aqui Alguma Observação" STYLE WS_BORDER + ES_AUTOHSCROLL MAXLENGTH 70

      @ 10,LI+409 GET oEditbox19 VAR vObs3 PICTURE '@!' SIZE 658,22 ;
         TOOLTIP "Informe aqui Alguma Observação" STYLE WS_BORDER + ES_AUTOHSCROLL MAXLENGTH 70

      @ 10,472 SAY oLabel28 CAPTION "Status:"  TRANSPARENT SIZE 46,16
      @ 60,469 GET COMBOBOX oSTATUS VAR cSTATUS ;
         ITEMS {'ATIVO','INATIVO'}  ;
         SIZE 97,24 TEXT  ;
         TOOLTIP 'Defina o STATUS desse Banco no sistema'

      @ 185,472 GET CHECKBOX oOCULTA_SAL VAR lOCULTA_SAL CAPTION "Ocultar saldo nos Extratos Bancários" SIZE 280,22 TRANSPARENT ;
         TOOLTIP "Marque essa opção para Ocultar o saldo Bancário nos extrato de banco (para usuário DIRETOR essa opção é ignorada)"
      @ 500,472 GET CHECKBOX oBancoPdv VAR lBancoPdv CAPTION "Banco para uso no PDV" SIZE 150,22 TRANSPARENT ;
         TOOLTIP "Marque essa opção para utilizar esse banco no modulo PDV."

      @ 010,496 GET CHECKBOX oBLKnnf VAR lBLKnnf CAPTION "Bloquear emissão de nota fiscal" SIZE 200,22 ;
         TOOLTIP "Marque essa opção para bloquear a emissão de nota fiscal quando pagamento de boleto usando este banco."

      @ 260,496 GET CHECKBOX oSEMCHEQUE VAR lSEMCHEQUE CAPTION "Bloquear uso de Cheque" SIZE 170,22 ;
         ON INIT {|o| o:Show() } ;
         TOOLTIP "Marque essa opção para o sistema bloquear o uso de numero de cheque nessa conta"

      @ 10,516 GET CHECKBOX oNAO_MOSTRA_DRE VAR lNAO_MOSTRA_DRE CAPTION "Não mostrar saldo no fechamento(DRE)" SIZE 245,22 ;
         TOOLTIP "Marque essa opção para o sistema não mostrar no fechamento financeiro o saldo desse banco"

      @ 260,516 GET CHECKBOX oARREDONDA VAR lARREDONDA CAPTION "Não utilizar arredondamento a receber na transf. bancária de ex." SIZE 370,22 ;
         TOOLTIP "Marque essa opção para o sistema não arredondar o valor a RECEBER ( R$ ) quando selecionado esse banco no destino."

      @ 010, 540 GROUPBOX oGroupExp CAPTION "Dados Exportação 2.0"  SIZE 600,47 COLOR 16711680 ON INIT {|o| o:HIDE() }
      @ 020,oGroupExp:nTop+20 SAY oLabelSwiftCode CAPTION "SWIFT Code:"  SIZE 100,22 TRANSPARENT ON INIT {|o| o:HIDE() }
      @ 140,oGroupExp:nTop+20 GET oSwiftCode VAR cSwiftCode PICTURE '@!' SIZE 100,22 TOOLTIP "código para bancos que é usado em exportações" STYLE WS_BORDER MAXLENGTH 15 ON INIT {|o| o:HIDE() }

      @ 300,oGroupExp:nTop+20 SAY oLabelAccount CAPTION "Account:"  SIZE 100,22 TRANSPARENT  ON INIT {|o| o:HIDE() }
   END PAGE of oTab

   BEGIN PAGE "&Layout de Cheques(FORMULARIO CONTINUO)" of oTab

      @ 005,060 GROUPBOX oGroup1CHQ CAPTION "Layout de Impressão de Cheques(FORMULARIO CONTINUO)"  SIZE 665,311 COLOR 16711680

      @ 149,090 SAY oLabel2CHQ CAPTION "Linhas"  SIZE 80,19 TRANSPARENT
      @ 249,090 SAY oLabel3CHQ CAPTION "Colunas" SIZE 80,19 TRANSPARENT

      @ 011,113 SAY oLabel1CHQ CAPTION "Valor "  SIZE 80,19 TRANSPARENT
      @ 149,110 GET oVALlin VAR nVALlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impresso o valor do cheque'

      @ 249,110 GET oVALcol VAR nVALcol SIZE 80,22    ;
         TOOLTIP 'Informe a coluna a ser impresso o valor do cheque'

      @ 340,113 SAY lbSEGCAR CAPTION "Caracter entre valor:"  SIZE 27,19 TRANSPARENT
      @ 345,108 GET COMBOBOX oVALfnt VAR nVALfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,137 LINE oLine1 LENGTH 659

      @ 011,146 SAY oLabel4CHQ CAPTION "Valor por Extenso"  SIZE 107,19 TRANSPARENT
      @ 149,143 GET oEXTlin VAR nEXTlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impressa o valor por extenso do cheque'

      @ 249,143 GET oEXTcol VAR nEXTcol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impressa o valor por extenso do cheque'

      @ 340,143 SAY lbEXTcol2 CAPTION "Coluna da segunda linha extenso:"  SIZE 27,19 TRANSPARENT
      @ 345,142 GET COMBOBOX oEXTfnt VAR nEXTfnt ITEMS aFNT SIZE 160,24 STYLE WS_DISABLED ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,168 LINE oLine2 LENGTH 659

      @ 011,177 SAY oLabel5CHQ CAPTION "Favorecido"  SIZE 65,19 TRANSPARENT
      @ 149,174 GET oFAVlin VAR nFAVlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impressa o nominal do cheque'

      @ 249,174 GET oFAVcol VAR nFAVcol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impressa o nominal do cheque'

      @ 345,174 GET COMBOBOX oFAVfnt VAR nFAVfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,200 LINE oLine3 LENGTH 659

      @ 011,208 SAY oLabel6CHQ CAPTION "Cidade"  SIZE 46,19 TRANSPARENT
      @ 149,205 GET oCIDlin VAR nCIDlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impressa a cidade do cheque'

      @ 249,205 GET oCIDcol VAR nCIDcol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impressa a cidade do cheque'

      @ 345,205 GET COMBOBOX oCIDfnt VAR nCIDfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,230 LINE oLine4 LENGTH 659

      @ 011,240 SAY oLabel7CHQ CAPTION "Dia"  SIZE 27,19 TRANSPARENT
      @ 149,237 GET oDIAlin VAR nDIAlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impressa o dia no cheque'

      @ 249,237 GET oDIAcol VAR nDIAcol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impressa o dia no cheque'

      @ 345,237 GET COMBOBOX oDIAfnt VAR nDIAfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,264 LINE oLine5 LENGTH 659

      @ 014,274 SAY oLabel8CHQ CAPTION "Mes"  SIZE 30,19 TRANSPARENT
      @ 149,271 GET oMESlin VAR nMESlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impressa o mes no cheque'

      @ 249,271 GET oMEScol VAR nMEScol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impresso o mes no cheque'

      @ 345,271 GET COMBOBOX oMESfnt VAR nMESfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,298 LINE oLine6 LENGTH 659

      @ 016,308 SAY oLabel9CHQ CAPTION "Ano"  SIZE 27,19 TRANSPARENT
      @ 149,305 GET oANOlin VAR nANOlin SIZE 80,22 ;
         TOOLTIP 'Informe a linha a ser impresso o ano no cheque'

      @ 249,305 GET oANOcol VAR nANOcol SIZE 80,22 ;
         TOOLTIP 'Informe a coluna a ser impresso o ano no cheque'

      @ 345,305 GET COMBOBOX oANOfnt VAR nANOfnt  ITEMS aFNT SIZE 160,24 ;
         ON INIT{|o| o:HIDE() } ;
         TOOLTIP 'Informe a fonte desejada'

      @ 007,331 LINE oLine6 LENGTH 659

      @ 016,338 SAY lbSEG CAPTION "Valor Segurança"  SIZE 27,19 TRANSPARENT
      @ 149,338 GET oLINSEG VAR nLINSEG SIZE 80,22 ;
         PICTURE '@ 99999' ;
         TOOLTIP 'Informe a linha a ser impresso o valor de segurança.'

      @ 249,338 GET oCOLSEG VAR nCOLSEG SIZE 80,22 ;
         PICTURE '@ 99999' ;
         TOOLTIP 'Informe a coluna a ser impresso o valor de segurança.'

      @ 005,371 GROUPBOX oGroup2CHQ CAPTION "Mês"  SIZE 215,38 COLOR 16711680

      @ 309,371 GROUPBOX oGroup3CHQ CAPTION "Ano"  SIZE 207,38

      @ 005,413 GROUPBOX oGroup4CHQ CAPTION "Espaçamento Entre Cheques"  SIZE 215,45 COLOR 16711680
      @ 045,431 GET oESP VAR nESP SIZE 80,22 ;
         TOOLTIP 'Informe o espaçamento entre os cheques'

      @ 005,463 GET CHECKBOX oNEGRO VAR lNEGRO CAPTION 'Negrito' SIZE 100,19 ;
         TOOLTIP 'Marque esta opção para imprimir o cheque em negrito'

      @ 130,468 SAY "Espaçamento entre linhas:"  SIZE 27,19 TRANSPARENT
      @ 290,463 GET COMBOBOX oESPACO_LINHAS VAR cESPACO_LINHAS  ITEMS aESPACO_LINHAS SIZE 80,24 TEXT ;
         TOOLTIP 'Informe o tamanho do espaçamento entre linhas'

      @ 260,423 OWNERBUTTON oBTNver TEXT "&Visualizar" SIZE 100,38 ;
         TOOLTIP 'Clique aqui para visualizar a impressão de cheques'

      @ 370,423 OWNERBUTTON bImprimir TEXT "&Imprimir" SIZE 100,38

   END PAGE of oTab

   @ 466,593  OWNERBUTTON btnOk TEXT "&Salvar" SIZE 100,38 ;
      ON CLICK {|| msginfo('clicou no salvar') }

   @ 576,593  OWNERBUTTON bCancelar TEXT "&Cancelar" SIZE 100,38 ;
      ON CLICK {|| oDLG:Close() }

   ACTIVATE DIALOG oDlg

   hwg_MsgInfo( "aqui fechou dialog" )

   RETURN Nil
Acabei de fazer o teste: compilando tudo com -gc3 o erro sumiu.

Meu aplicativo também tem um erro inexplicável parecido com esse, não custa tentar....

IMPORTANTE:
Esse fonte se tornou insubstituível.
Só acontece erro com esse fonte do jeito que está, qualquer coisa diferente o erro some.
Funciona com xharbour, e em harbour somente compilando com -gc3

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 16:04
por marcosgambeta
JoséQuintas escreveu:Acabei de fazer o teste: compilando tudo com -gc3 o erro sumiu.

Meu aplicativo também tem um erro inexplicável parecido com esse, não custa tentar....
Estava justamente pensando no seu caso.

Espero que resolva o problema dos erros aleatórios.

Eu já venho usando o -gc3 faz bastante tempo e tem funcionado bem.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 16:09
por JoséQuintas
Obrigado pela informação.

Fica a dúvida: melhor usar sempre ? não deveria ser o default ? pode ter casos onde ele atrapalharia ?

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 16:48
por marcosgambeta
JoséQuintas escreveu:Obrigado pela informação.

Fica a dúvida: melhor usar sempre ? não deveria ser o default ? pode ter casos onde ele atrapalharia ?
Por padrão, o Harbour já é compilado com o -gc3 ativado (src/rtl, por exemplo).

Mas para os desenvolvedores que usam o Harbour, o padrão continua sendo gerar PCODE. Era o padrão e continuou sendo o padrão, mesmo com o surgimento do -gc3.

Felizmente, com o hbmk2 é fácil compilar bibliotecas e projetos com ele. Basta adicionar o -gc3 na linha de comando. Pode usar inclusive com as bibliotecas gráficas.

O único ponto negativo que tenho para citar é o aumento no tamanho dos binários. Neste caso, cada desenvolvedor vai ter de analisar se este aumento atrapalha de alguma forma ou não.

Para os usuários do sistema, eles podem não perceber que o executável está mais 'gordinho', mas certamente vão perceber se ele ficar mais rápido.

BUG COM HWGUI, HARBOUR OU O QUE ? XHARBOUR E BCC FUNCIONA

Enviado: 25 Fev 2024 18:01
por JoséQuintas
Só complemento:

Não tem a ver com limites ou tamanho.
Inicialmente o fonte tinha 10 abas, e foi reduzido pra duas, e o erro continuou.