HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

IMG_20210129_124838.jpg
IMG_20210129_124838.jpg (2.61 MiB) Viewed 3790 times
Olá.
Tenho um sistema antigo que migrei primeiramente usando a lib gtwvg através de de .BAT usando hbmk2.

depois descobri que a hmg 3.4.x vinha por padrão, na pasta contribs com a lib gtwvg anexada.

Com isso passei a compilar de dentro da ide/hmg através do F5. agora eu estou fazendo um fazendo uma migração para formulários DEFINE WINDOW. Mas o sistema vai continuar usando gtwVG até migrar tudo e mudando aos poucos para telas melhoradas.
Tudo ainda está no começo. As telas de login, Splash e o form main Window junto com menu já estão prontos em 100% Gui hmg.

Acontece que de vez em quando aparece esse erro do nada.
Esse erro aparece também mudando de "&" para "=".

O estranho que nas linhas onde acontecem não tem ligação com minhas linhas e sim com a lib.

Gostaria de saber se é algum bug ou se é alguma interferência da wvg .

Alguém tem alguma ideia?
User avatar
Claudio Ricardo
Posts: 367
Joined: Tue Oct 27, 2020 3:38 am
DBs Used: DBF, MySQL, MariaDB
Location: Bs. As. - Argentina

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by Claudio Ricardo »

Hola... la macrosustitución da ese error cuando declaramos local una variable, y luego queremos enviarla
fuera de la función mediante macrosustitución, pero si la declaramos pública o directamente
no la declaramos pero si le asignamos un valor, ya no da ese error.
Corrige al sabio y lo harás más sabio, Corrige al necio y lo harás tu enemigo.
WhatsApp / Telegram: +54 911-63016162
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

Claudio Ricardo wrote: Sat Jan 30, 2021 3:16 am Hola... la macrosustitución da ese error cuando declaramos local una variable, y luego queremos enviarla
fuera de la función mediante macrosustitución, pero si la declaramos pública o directamente
no la declaramos pero si le asignamos un valor, ya no da ese error.
ola meu nobre Claudio Ricardo. Obrigado por me respondee tão rapidamente.
Acontece que esse erro só acontece quando estou usando o form window da hmg. Já no modo console usando gtwvg não acontece esse erro. Então não há referência alguma ou chamada a alguma macrosbstituição. Aliás o erro aparece "&" ou como "=".

Como eu disse, nenhuma das linhas contém alguma referência...
Qualquer coisa posto aqui paete do código para acharmos essa " & " ou "="....
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by srvet_claudio »

Hola,
si mezclas hmg con cualquiera de las gtxxx o con cualquiera de las otras lib GUI puede aparecer este tipo de errores colaterales en la ejecución de los eventos de Windows ya que tanto hmg como las gtxxx y las otras GUI fueron diseñadas para funcionar con harbour puro, no para ser mezcladas entre ellas.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

boa tarde!
puxa vida!
a resposta simplesmente é não dá e pronto?
srvet_claudio wrote: Sat Jan 30, 2021 4:55 am como las gtxxx y las otras GUI fueron diseñadas para funcionar con harbour puro, no para ser mezcladas entre ellas.
então, me desculpem a franqueza:
RETIREM A GTWVG da pasta CONTRIBS.
Se não podemos usar, então não tem o porquê de estar lá.

vejam bem.
é igual o distanciamento social, o uso de máscara, etc... não faz sentido.
O erro acabou de acontecer novamente.
Deve haver um meio de se criar um FORM WINDOW (100% HMG) que em seguida chame as telas CUI WVG.
O problema, é que o erro acontece simplesmente de se andar com o mouse sobre a tela e não clico em nada.
O erro de "&" ou "=" aparece sem explicação, pelo menos para mim.
por favor, vejam mais uma tela de erro:
21-0130 - erro tela hmg principal.png
21-0130 - erro tela hmg principal.png (68.51 KiB) Viewed 3719 times
User avatar
Claudio Ricardo
Posts: 367
Joined: Tue Oct 27, 2020 3:38 am
DBs Used: DBF, MySQL, MariaDB
Location: Bs. As. - Argentina

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by Claudio Ricardo »

Hola... Siempre te da error la linea 1557 de la Función Main...
Podrias postearla junto con las lineas adyacentes.
Corrige al sabio y lo harás más sabio, Corrige al necio y lo harás tu enemigo.
WhatsApp / Telegram: +54 911-63016162
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

Claudio Ricardo wrote: Sat Jan 30, 2021 3:58 pm Podrias postearla junto con las lineas adyacentes.
SIM.
Aliás, já tinha feito e quando fui postar o meu login/senha tinha expirado...
estou digitando tudo novamente kkk
vamos lá então:

AS linhas ABAIXO:

Code: Select all

- EVENTPROCESS(159)
- DOMESSAGELOOP(0)
- _ACTIVATEWINDOW(5694)
Não são do meu sistema e sim coisas internas da LIB HMG.
A linha:
MCI10998(4934)

Code: Select all

MenuHMG()
MAIN(1557)

Code: Select all

     MCI10998(TECLAS,SALVA_COR)
Vamos à função MCI10998 completa:

Code: Select all

func MCI10998(TECLAS,SALVA_COR)
                  	DEFINE WINDOW Form_Main ;
                        AT GetDesktopRealTop(),GetDesktopRealLeft() ;
                        WIDTH GetDesktopRealWidth() HEIGHT GetDesktopRealHeight() ;
                        TITLE PROCNAME() + SPACE(2) +'|' + SPACE(2) + DESC_SIST + SPACE(2) ;
                        NOMAXIMIZE;
                        NOSIZE;
                        ICON "AppIcon"  ;
                        BACKCOLOR iif (lTEMA,"DarkGrey","RGB292540") ;
                        ON INIT MCI10000_hmg () ;
                        ON INTERACTIVECLOSE form_oninteractiveclose (win_ansitooem('Ops! Você Clicou no botão <X> da Janela.') + hb_eol() + win_ansitooem('Talvez Perderá Tudo que Não Está Concluído!!!') + hb_eol() + hb_eol() + win_ansitooem('Deseja Realmente Sair do SiCCA?'), 'Fechar Programa - Tome Cuidado!') ; // harbour 3.2 6/1/21w
                        MAIN // removido provisoriamente pra tentar fazer com q a tela da WVG seja a MAIN. 29/3/20w
							
                           DEFINE BUTTON BUTTON_1
                              ROW 30
                              COL GetDesktopRealLeft() // / 2
                              WIDTH  300
                              HEIGHT 100
                              CAPTION 'CLIENTES' 
                              TOOLTIP "Clique aqui para entrar ou cadastrar novo(a) cliente !"
                              PICTURE "BTCLIENTE"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10006 ()})} 
                           END BUTTON     
						   
                        DEFINE STATUSBAR 
                           STATUSITEM win_ansiToOem("(c) 1998-2021 MVinfo Sistemas | by dePaula - Versão 3.71 (beta)" )
                           CLOCK 
                           DATE 
                        END STATUSBAR
                     END WINDOW
                     form_main.button_1.enabled := .f. // clientes   // pci10006
                     form_main.button_2.enabled := .f. // orçamentos // pci10001
                     form_main.button_3.enabled := .f. // extrato    // pci10227
                     form_main.button_4.enabled := .f. // baixar     // pci10013
                     
                     hWnd1:=GetFormHandle("Form_Main")
                     MenuHMG() // retirado provisoriamente em 14/3/20w // coloquei e retirei em 26/12/20w provisoriamente.
                     ACTIVATE WINDOW Form_Main
return // MCI10998 
o ONCLICK do botão acima, chama a função EXECUTA_PROGRAMA(...), veja(m):

Code: Select all

static function EXECUTA_PROGRAMA (PROGRAMA)
         LOCAL nCount, nItem
     close all
     eval (PROGRAMA)
     ABRE_ARQ_ACESSO ()
return
Agora vamos à função MENUHMG() parte dela, pois é muito grande e com funções repetidas, pois é nela que se monta o MENU HORIZONTAL/VERTICAL:

Code: Select all

FUNCTION MenuHMG()
	DEFINE MAIN MENU OF Form_Main
         DEFINE POPUP '&CADASTROS'
            if MONTA_VETOR_wvg2 ('PCI10001') .or. MONTA_VETOR_wvg2 ('PCI10047') .or. MONTA_VETOR_wvg2 ('PCI10010') ;
               .or. MONTA_VETOR_wvg2 ('PCI10048') .or. MONTA_VETOR_wvg2 ('PCI10011')
               POPUP (win_AnsiToOem('&ORÇAMENTOS'))
                  if MONTA_VETOR_wvg2 ('PCI10001')
                     ITEM (win_AnsiToOem("&Orçamentos"))              ACTION { || EXECUTA_PROGRAMA ({|| PCI10001 ()}) }
                  endif
               END POPUP // CADASTROS
            endif
          END POPUP // CADASTROS
	END MENU // MAIN MENU OF FORM_MAIN
RETURN // aaMenuOption
Bom, por enquanto é só.
talvez tenha mais algumas linhas com funções/procedures que não tenha percebido, a exemplo da função MONTA_VETOR_WVG2(...) que simplesmente verifica se a senha do usuário permite que ele veja ou não as opções do menu.
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

POR EXEMPLO. agora aconteceu novamente o mesmo erro...
só que ele mudou o nome.
estou tendo a ligeira impressão que esse problema está relacionado com esses botões na tela.
Alguma coisa no código, faz com que o erro dá na criação do DEFINE WINDOW e seus componentes.
vejam na imagem:
21-0131 - ERRO TELA NOVAMENTE.png
21-0131 - ERRO TELA NOVAMENTE.png (46.49 KiB) Viewed 3672 times
o erro agora mudou de nome para:
error base/1066 erro nos parâmetros condicional
Mas, nas mesmas linhas de sempre.
simplesmente aconteuceu ao passar o mouse sobre os botões.
vou postar aqui o código de um dos botões novamente e todas as FUNCTION que eles chamam. Quem sabe alguém pode dar mais uma CLAREADA pra nós:

Code: Select all

                           DEFINE BUTTON BUTTON_1
                              ROW 30
                              COL GetDesktopRealWidth() / 2 - 150 // esta linha ajusta o centro da tela de acordo com o tamanho do monitor, para que os botões aparecem de forma mais centralizada.
                              WIDTH  150
                              HEIGHT 100
                              CAPTION 'CLIENTES' 
                              TOOLTIP "Clique aqui para entrar ou cadastrar novo(a) cliente !"
                              PICTURE "BTCLIENTE"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10006 ()})} 
                           END BUTTON     
ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10006 ()})} o código é:

Code: Select all

static function EXECUTA_PROGRAMA (PROGRAMA)
         LOCAL nCount, nItem
     
     close all
     eval (PROGRAMA)
	 
		if .not. lGUI // acrescentado 30/1/21w para tentar resover o erro:
          FOR nCont = 1 TO Len( oForm )  // acrescentado p/ encerrar os botões 19/12/15w
               oForm[ nCont ]:show()  // acrescentado p/ encerrar os botões 19/12/15w
          NEXT  // acrescentado p/ encerrar os botões 19/12/15w
		else
		endif
return
O estranho, que não se sabe quando que esse "maldito" erro aparecerá. Ele é instável, inconstante, sem definição, e sem LÓGICA.
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by MICROVOLUTION »

então, é muito estranho mesmo.
depois de muito tempo, acabou de ocorrer o erro novamente.
são sempre nas mesmas linhas.
só às vezes muda o nome do erro. ora é "&" ora é "=", ou, ora é "==", como foi nesta imagem abaixo:
21-0131 - ERRO TELA NOVAMENTE-2.png
21-0131 - ERRO TELA NOVAMENTE-2.png (52.55 KiB) Viewed 3667 times
Será que surgirão mais opiniões dos nobres professores?
Pois, parece que é apenas ao passar com o mouse sobre os 5 BOTÕES existentes no FORM WINDOW.
User avatar
Claudio Ricardo
Posts: 367
Joined: Tue Oct 27, 2020 3:38 am
DBs Used: DBF, MySQL, MariaDB
Location: Bs. As. - Argentina

Re: HMG 3.5 - ERROR BASE 1449 ERRO DE SINTAXE "&"

Post by Claudio Ricardo »

Hola... Puedes probar añadir a los button: OnGotFocus Nil y OnLostFocus Nil
si el problema es al pasar el mouse por encima sin clickar.
No conozco las funciones GetDesktopReal xxxx () yo uso GetDesktopWidth () y GetDesktopHeight ()
o las de la libreria Bos Taurus que funcionan perfecto.
Yo haría todo el menú, popup, statusbar y botones del form main dentro de una sola función.
Corrige al sabio y lo harás más sabio, Corrige al necio y lo harás tu enemigo.
WhatsApp / Telegram: +54 911-63016162
Post Reply