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

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

Post by MICROVOLUTION »

no final de tudo apresentou o seguinte:

Code: Select all

Generating C source output to 'C:\Users\micro\AppData\Local\Temp\hbmk_mhmmzf.dir\h_windows.c'... Done.
../../../../../../MVinfo/hmg.3.5/source/BosTaurus/c_BosTaurus.c: In function 'bt_Load_GDIplus':
../../../../../../MVinfo/hmg.3.5/source/BosTaurus/c_BosTaurus.c:501:34: warning: cast between incompatible function types from 'FARPROC' to 'void (__attribute__((stdcall)) *)(ULONG_PTR)' [-Wcast-function-type]
  501 |    GdiPlusShutdown             = (Func_GdiPlusShutdown)             GetProcAddress (GdiPlusHandle, "GdiplusShutdown");
      |                                  ^
../../../../../../MVinfo/hmg.3.5/source/c_richeditbox.c: In function 'HB_FUN_RICHEDITBOX_GETPARAFORMAT':
../../../../../../MVinfo/hmg.3.5/source/c_richeditbox.c:833:12: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  833 |       else if ( ParaFormat2.wAlignment == PFA_JUSTIFY )
      |            ^~
../../../../../../MVinfo/hmg.3.5/source/c_richeditbox.c:836:11: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  836 |           hb_stornl ((LONG) Alignment, 2);
      |           ^~~~~~~~~
In file included from ../../../../../../MVinfo/hmg.3.5/source/c_winapimisc.c:65:
../../../../../../MVinfo/hmg.3.5/source/c_winapimisc.c: In function 'win_ImageDirectoryEntryToData':
c:\mvinfo\hmg.3.5\include\hmg_unicode.h:234:15: warning: cast between incompatible function types from 'FARPROC' to 'void * (__attribute__((stdcall)) *)(void *, BOOLEAN,  USHORT,  ULONG *)' [-Wcast-function-type]
  234 |       pfunc = (PFUNC) GetProcAddress (hLib, _DLL_FUNC_NAMESTRINGAW);\
      |               ^
../../../../../../MVinfo/hmg.3.5/source/c_winapimisc.c:1469:1: note: in expansion of macro 'HMG_DEFINE_DLL_FUNC'
 1469 | HMG_DEFINE_DLL_FUNC ( win_ImageDirectoryEntryToData,   // user function name
      | ^~~~~~~~~~~~~~~~~~~
../../../../../../MVinfo/hmg.3.5/source/c_winapimisc.c: In function 'win_ImageRvaToVa':
c:\mvinfo\hmg.3.5\include\hmg_unicode.h:234:15: warning: cast between incompatible function types from 'FARPROC' to 'void * (__attribute__((stdcall)) *)(struct _IMAGE_NT_HEADERS *, void *, ULONG,  struct _IMAGE_SECTION_HEADER **)' [-Wcast-function-type]
  234 |       pfunc = (PFUNC) GetProcAddress (hLib, _DLL_FUNC_NAMESTRINGAW);\
      |               ^
../../../../../../MVinfo/hmg.3.5/source/c_winapimisc.c:1479:1: note: in expansion of macro 'HMG_DEFINE_DLL_FUNC'
 1479 | HMG_DEFINE_DLL_FUNC ( win_ImageRvaToVa,   // user function name
      | ^~~~~~~~~~~~~~~~~~~

Pressione qualquer tecla para continuar. . .
SIGNIFICA QUE COMPILOU CORRETAMENTE OU ISSO É UMA MENSAGEM DE ERRO?
Grato,
MICROVOLUTION, WdePaula
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

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

Post by MICROVOLUTION »

ops... recapitulando o que fiz então:
- alterei as linhas conforme sugerido e etendi;
- compilei a lib com BUILDLIB32.BAT;
- apresentou aquelas mensagens (não sei se são de erro);
- recompilei meu sistema via IDE/HMG como 32bits;
apresentaram novos erros:

Code: Select all

Date:04/02/2021 Time: 11:10:27
Error BASE/1070 Erro nos parƒmetros: ==

Called from _HMG_ONKEY_ONMOUSE_CONTROLS(259)
Called from EVENTPROCESS(163)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694)
Called from MCI10998_HMG(7416)
Called from MAIN(1650)
pra mim, é a mesma coisa, só mudou de lugar:
agora saiu da EVENTPROCESS e foi para _HMG_ONKEY_ONMOUSE_CONTROLS.
estou procurando em todos os arquivos da HMG pra saber em qual deles está essa função...
um momento...
achei:
essa função pertence ao arquivo: c:\hmg.3.5\source\h_winApiMisc.prg.
como é pequena a função, vou compartilhá-la totalmente aqui para efeito de estudo e didático erro linha (259):

Code: Select all

FUNCTION _HMG_OnKey_OnMouse_Controls
LOCAL i:=0, k, nSubIndex1:=0, ret := NIL

   IF ( EventIsKeyboardMessage() == .T. .OR. EventIsMouseMessage() == .T. ) .AND.  EventIsHMGWindowsMessage() == .F.

      FOR k = 1 TO HMG_LEN (_HMG_SYSDATA [3])
259         IF HMG_CompareHandle (_HMG_SYSDATA [3] [k],  EventHWND(), @nSubIndex1) == .T.
            i := k
            EXIT
         ENDIF
      NEXT

      IF i > 0 .AND. EventIsKeyboardMessage() == .T.
         IF ValType ( _HMG_SYSDATA [41] [i] [1]) == "B"
            HMG_GetOnKeyControlIndex (NIL, i, nSubIndex1)
            ret := EVAL ( _HMG_SYSDATA [41] [i] [1])   // OnKey Event
         ENDIF
      ENDIF

      IF i > 0 .AND. EventIsMouseMessage() == .T.
         IF ValType ( _HMG_SYSDATA [41] [i] [2]) == "B"
            HMG_GetOnMouseControlIndex (NIL, i, nSubIndex1)
            ret := EVAL ( _HMG_SYSDATA [41] [i] [2])   // OnMouse Event
         ENDIF
      ENDIF

      HMG_GetOnKeyControlIndex   (NIL, 0, 0)
      HMG_GetOnMouseControlIndex (NIL, 0, 0)

   ENDIF
RETURN ret
a linha 259 do erro, é:

Code: Select all

259         IF HMG_CompareHandle (_HMG_SYSDATA [3] [k],  EventHWND(), @nSubIndex1) == .T.
Só pra efeito didático e sem alterar nada, EXECUTEI (sem compilar de novo. só executei mesmo o .EXE) meu sistema novamente e deu o erro novamente noutro lugar EVENTPROCESS(126):

Code: Select all

Date:04/02/2021 Time: 11:21:58
Error BASE/1070 Erro nos parƒmetros: ==

Called from EVENTPROCESS(126)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694)
Called from MCI10998_HMG(7416)
Called from MAIN(1650)
a linha 126 pertence ao trecho abaixo do arquivo h_EventCB.prg:

Code: Select all

      lProcessMessage := .F.
      IF EventProcessAllHookMessage (nIndex) == .T.
         lProcessMessage := .T.
126      ELSEIF EventProcessHMGWindowsMessage (nIndex) == .T. .AND. IsHMGWindowsMessage == .T.
         lProcessMessage := .T.
      ELSEIF EventProcessKeyboardMessage   (nIndex) == .T. .AND. IsKeyboardMessage   == .T.
         lProcessMessage := .T.
      ELSEIF EventProcessMouseMessage      (nIndex) == .T. .AND. IsMouseMessage      == .T.
         lProcessMessage := .T.
      ENDIF
linha 126 acima, repetindo é:

Code: Select all

126      ELSEIF EventProcessHMGWindowsMessage (nIndex) == .T. .AND. IsHMGWindowsMessage == .T.
resolvi ser teimoso e EXECUTEI novamente o .EXE do sistema e o erro foi na linha (161) do h_eventcb.prg:

Code: Select all

Date:04/02/2021 Time: 11:35:01
Error BASE/1449 Erro de sintaxe: &

Called from EVENTPROCESS(161)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694)
Called from MCI10998_HMG(7416)
Called from MAIN(1650)
linha 161 acima pertence ao código:

Code: Select all

            // IF ValType( _HMG_EventPROCNAME ) <> "C" // original modificada pela abaixo, segundo orientação do Dr.Claudio Soto para:
            IF ValType( _HMG_EventPROCNAME ) == "B" // funcionar WINDOW MAIN HMG com CONSOLE WVG juntos 4/3/21w
               Ret := Eval( _HMG_EventPROCNAME )   // is codeblock
            // ELSE // original modificada pela abaixo, segundo orientação do Dr.Claudio Soto para:
            ELSEIF ValType( _HMG_EventPROCNAME ) == "C"// funcionar WINDOW MAIN HMG com CONSOLE WVG juntos 4/3/21w
               cProcName := _HMG_EventPROCNAME
               IF hb_URight(cProcName, 1) <> ")"
161                  Ret := &cProcName()
               ELSE
                  Ret := &cProcName
               ENDIF
            ENDIF
A linha que contém o erro é:

Code: Select all

161                  Ret := &cProcName()
bom, executei novamente, e o erro foi na linha (126) novamente...
executei o .EXE de novo, e, agora o erro foi na linha (126):

Code: Select all

Date:04/02/2021 Time: 11:46:38
Error BASE/1070 Erro nos parƒmetros: ==

Called from EVENTPROCESS(124)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694)
Called from MCI10998_HMG(7416)
Called from MAIN(1650)
a linha (124) é:

Code: Select all

      lProcessMessage := .F.
124      IF EventProcessAllHookMessage (nIndex) == .T.
         lProcessMessage := .T.
126      ELSEIF EventProcessHMGWindowsMessage (nIndex) == .T. .AND. IsHMGWindowsMessage == .T.
         lProcessMessage := .T.
128      ELSEIF EventProcessKeyboardMessage   (nIndex) == .T. .AND. IsKeyboardMessage   == .T.
         lProcessMessage := .T.
130      ELSEIF EventProcessMouseMessage      (nIndex) == .T. .AND. IsMouseMessage      == .T.
         lProcessMessage := .T.
      ENDIF
bom, no meu pouco conhecimento e vendo os erros se repetirem e finalizando nestes lugares, entendo, que não é na finalização e sim no _ACTIVEWINDOW(5694)
ENTÃO, executei novamente o .EXE e o erro foi agora na linha:

Code: Select all

Date:04/02/2021 Time: 11:56:17
Error BASE/1070 Erro nos parƒmetros: ==

Called from EVENTPROCESS(130)
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(5694)
Called from MCI10998_HMG(7416)
Called from MAIN(1650)
Erro da linha (130) está acima:

Code: Select all

130      ELSEIF EventProcessMouseMessage      (nIndex) == .T. .AND. IsMouseMessage      == .T.
Bom, vou postar novamente aqui o meu FORM_MAIN, que possível causador do erro (FORM_MAIN.FMG):

Code: Select all

                  	DEFINE WINDOW Form_Main ;
                        AT 0,0 ;
                        WIDTH GetDesktopWidth() HEIGHT GetDesktopHeight() ;
                        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 Sistema'), 'Sistema 3.7 - Fechar Programa - Tome Cuidado!') ;
                        MAIN

                           DEFINE BUTTON BUTTON_1
                              // parent FORM_MAIN
                              ROW 30
                              // COL GetDesktopRealWidth() / 2 - 150 // ; 500
                              COL GetDesktopWidth() / 2 - 150 // ; 500
                              WIDTH  150
                              HEIGHT 100
                              CAPTION 'CLIENTES' 
                              TOOLTIP "Clique aqui para entrar ou cadastrar novo(a) cliente !"
                              PICTURE "BTCLIENTE"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10006 ()})} 
							  OnGotFocus Nil
							  OnLostFocus Nil
                           END BUTTON     
						   
                           DEFINE BUTTON BUTTON_1A
                              // parent FORM_MAIN
                              ROW 30
                              // COL GetDesktopRealWidth() / 2 - 00 // ; 500
                              COL GetDesktopWidth() / 2 - 00 // ; 500
                              WIDTH  150
                              HEIGHT 100
                              CAPTION win_ansiToOem('PRESTAÇÕES ANTIGAS')
                              TOOLTIP win_ansiToOem("Clique aqui para entrar em Prestações Antigas")
                              PICTURE "BTPREST"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10003 ()})} 
							  OnGotFocus Nil
							  OnLostFocus Nil
                           END BUTTON     
						   
                           DEFINE BUTTON BUTTON_2
                              // parent FORM_MAIN
                              ROW 130
                              // COL GetDesktopRealWidth() / 2 - 150 // ; 500 // ESTAVA 700 e invertido com o BUTTON_4
                              COL GetDesktopWidth() / 2 - 150 // ; 500 // ESTAVA 700 e invertido com o BUTTON_4
                              WIDTH  100
                              HEIGHT 100
                              // CAPTION HB_ANSITOOEM('ORÇAMENTO') // harbour 3.2 6/1/21w
                              // TOOLTIP hb_ansitooem("Clique aqui para fazer um novo orçamento !") // harbour 3.2 6/1/21w
                              CAPTION win_ANSITOOEM('ORÇAMENTO') // harbour 3.4 6/1/21w
                              TOOLTIP win_ansitooem("Clique aqui para fazer um novo orçamento !") // harbour 3.4 6/1/21w
                              PICTURE "BTORCAMENTO"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10001 ()})} 
                              // ONCLICK F_Win_Frame( "PCI10001", { || PCI10001() } ) 
							  OnGotFocus Nil
							  OnLostFocus Nil
                           END BUTTON     
                           
                           DEFINE BUTTON BUTTON_3
                              // parent FORM_MAIN
                              ROW 130
                              // COL GetDesktopRealWidth() / 2 - 50 // 600
                              COL GetDesktopWidth() / 2 - 50 // 600
                              WIDTH  100
                              HEIGHT 100
                              CAPTION 'EXTRATO' 
                              TOOLTIP "Extrato Por Cliente"
                              PICTURE "BTEXTRATO"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10227 ()})} 
							  OnGotFocus Nil
							  OnLostFocus Nil
                           END BUTTON     
                           
                           DEFINE BUTTON BUTTON_4
                              // parent FORM_MAIN
                              ROW 130
                              // COL GetDesktopRealWidth() / 2 + 50 // 700 // era 500 e estava invertido com o BUTTON_2
                              COL GetDesktopWidth() / 2 + 50 // 700 // era 500 e estava invertido com o BUTTON_2
                              WIDTH  100
                              HEIGHT 100
                              CAPTION 'BAIXAR' 
                              TOOLTIP win_ansitooem("Clique aqui para baixar uma prestação !") // harbour 3.4 6/1/21w
                              PICTURE "BTBAIXAR"
                              ONCLICK { || EXECUTA_PROGRAMA ({|| PCI10013 ()})} 
                              BACKCOLOR "RGB292540"
							  OnGotFocus Nil
							  OnLostFocus Nil
                           END BUTTON     

                        DEFINE STATUSBAR 
                           STATUSITEM win_ansiToOem("(c) 1998-2021 Sistemas | by microvolution - Versão 3.7.1 (beta)" )
                           CLOCK 
                           DATE 
                        END STATUSBAR
                     END WINDOW
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

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

Post by andyglezl »

Consulta la ayuda y los ejemplos de HMG...

------------------------------------------------------------------------------------------------------------------------
BackColor Property
Specifies the background color for a GUI object

Syntax:

BackColor <anValue>
Must be specified as a three elements numeric array containing red, green and blue components
------------------------------------------------------------------------------------------------------------------------


BACKCOLOR iif (lTEMA,"DarkGrey","RGB292540") ;

By

BACKCOLOR iif (lTEMA,DarkGrey,RGB292540) ;
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
srvet_claudio
Posts: 2220
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 »

Microvolution,
Siguen siendo errores de enrutamiento de los mensajes de Windows, se siguen produciendo porque funciones a nivel de C intentan llamar o acceder a funciones/objetos de Hb que aún no están disponibles, la mezcla de las lib altera la lógica del funcionamiento interno de HMG y tal vez de la otra lib también.
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 »

Mas não entendo
srvet_claudio wrote: Thu Feb 04, 2021 4:43 pm Siguen siendo errores de enrutamiento de los mensajes de Windows, se siguen produciendo porque funciones a nivel de C
Se eu soubesse programar em C eu mesmo inventaria uma forma de alterar as 2 Libs pra haver compatibilidade. Um tipo de IFDEF
andyglezl wrote: Thu Feb 04, 2021 3:53 pm BACKCOLOR iif (lTEMA,DarkGrey,RGB292540) ;
O código está assim é porque estou carregando via #define e só funciona se estiver entre aspas. Agora o co autor da hmg Dr Soto tem razão desse o início. O que a gente tenta fazer é achar uma solução em que a lib wvg seja acionada e encerrada sem deixar rastros assim que o módulo que foi acionado, retorne para o form main automaticamente.
O que tem acontecido é que antes de ser acionado só existe o form main Window.
Quando aciona a tela wvg aparece outro formulário. Após encerrar aquele é fechado e outro parecendo o CMD do DOS aparece com o cursor aceso o tempo todo no canto superior esquerdo e outro no canto inferior esquerdo piscando por 5 vezes e após ele desaparece .
É isso que precisamos resolver. Acredito que todo este problema é feriado pela abertura dessa tela preta CONSOLE tipo CMD.
VOU MOSTRAR UNS PRINTS do sistema até o form main que não trava.
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 noite a todos!
desculpem-me a insistência no assunto:
e, se a gente usasse o MT=YES daria certo?
o que temos que mudar nas linhas de programação para que quando mudar para GTWVG e ao encerrá-la a HMG se comportasse de forma que não apresentasse o "estranho" erro?
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

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

Post by MICROVOLUTION »

desculpa... outra tentativa que nem faço noção de como fazer:
- E se no início do sistema eu criasse um F_MAIN (MAIN) sem nada, apenas com ON INIT pra chamar o meu FORM_MAIN que passaria a ser MODAL
- então, quando esse FORM_MAIN MODAL chamar as telas CONSOLE WVG, seja fechado 100% (release) e quando terminar (através de um loop DO WHILE .T.) o FORM_MAIN seja invocado novamente (que estava como INVISIBLE .F. e ENABLED .F.) e CRIE NOVAMENTE O FORM_MAIN MODAL.

É possível fazer isso?
quem sabe assim, o FORM (main) que está instanciado no início, criei novamente o form_main (modal)
MICROVOLUTION
Posts: 146
Joined: Sat May 30, 2015 5:15 am

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

Post by MICROVOLUTION »

alguém me disse pra tentar:
- SET WINDOW MAIN ON/OFF que talvez resolveria, ou
- MT=YES que separaria as 2 LIBs em instâncias completamente diferentes, como se fossem 2 programas distintos, mas, não sei como fazer.

Será que dará certo?
estou em 2 dilemas:
- ou deixo tudo como estava, somente as telas simuladas da GTWVG que não são aquele CONSOLE HORRÍVEL parecendo DOS ou COBOL kkkk;
- ou troco tudo para HMG. Aí que está o problema... já tem quase 2 anos que estou nessa luta de aprender os objetos e seus eventos da HMG e não aprendi mais que LABEL/TEXTBOX... tentei usar o GRID no lugar do meu TBROWSE... arrumei foi dor de cabeça....

então, como dizem aqui no Brasil:
- estou num mato sem cachorro ou
- saí do fogo e caí na fogueira ou
- rir pra não chorar!
kkkkk
alguém se atreve ter mais alguma ideia?
jparada
Posts: 433
Joined: Fri Jan 23, 2009 5:18 pm

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

Post by jparada »

Hola,

Sólo emito mi comentario por acá...

En ocasiones he visto pantallas/proyectos de gente que hace algo parecido a lo que tu necesitas (no sé si están por acá ya que no han comentado...), pero el Dr. Claudio que ahora es uno de los principales core-developers de hmg ya te ha dado su opinión (respuesta técnica).

Si estás en la posición de cambiar todo tu desarrollo a hmg por qué no lo haces?, hay un mundo de ejemplos para que puedas comenzar y la gente de éste foro siempre está dispuesta a ayudar como puedes ver en los miles de post que hay en el foro con preguntas y sobre todo respuestas...

En fin, espero logres pronto lo que deseas realizar o tomes alguna otra decisión.

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

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

Post by MICROVOLUTION »

grato por responder tão prontamente. sua opinião é muito válida pra ajudar na minha decisão.
jparada wrote: Sat Feb 06, 2021 2:49 pm En fin, espero logres pronto lo que deseas realizar o tomes alguna otra decisión.
elas estão aqui...
MICROVOLUTION wrote: Sat Feb 06, 2021 1:49 am estou em 2 dilemas:
- ou deixo tudo como estava, somente as telas simuladas da GTWVG que não são aquele CONSOLE HORRÍVEL parecendo DOS ou COBOL kkkk;
- ou troco tudo para HMG. Aí que está o problema... já tem quase 2 anos que estou nessa luta de aprender os objetos e seus eventos da HMG e não aprendi mais que LABEL/TEXTBOX... tentei usar o GRID no lugar do meu TBROWSE... arrumei foi dor de cabeça....
rsrsrsrs
feliz sábdo pra vc e toda sua família!
Post Reply