Divertido testar hmg exended
Moderador: Moderadores
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
En el código anterior se muestran los mensajes de respuesta de la app, pero lo realmente importante en el desarrollo de una lib GUI es como recepciona los msg de Windows, los procesa y los dirige a la ventana o al control apropiado, esta es la parte más difícil e importante en una lib GUI, lo demás son respuestas predefinidas a esto primero.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Quando chega em conhecimento de linguagem C, não tenho como fazer.tal es así que creo que su desarrollo fue abandonado
O que fiz pra Harbour 3.4 não funciona no 3.2, simplesmente porque precisa conversão C.
No Harbour 3.4 funciona tamanho * 0.8, mas no Harbour 3.2 não, por causa do tipo numérico que é retornado.
Se esssa é a parte mais difícil... ótimo... talvez esteja adiantado na GTWVG.lo realmente importante en el desarrollo de una lib GUI es como recepciona los msg de Windows, los procesa y los dirige a la ventana o al control apropiado, esta es la parte más difícil e importante en una lib GUI
Talvez até de uma forma até mais interessante do que na HMG.
Os controles wvg* usam API, tal qual os controles HMG
Código: Selecionar todos
METHOD WvgTabPage:handleEvent( nMessage, aNM )
LOCAL aHdr
DO CASE
CASE nMessage == HB_GTE_SETFOCUS
IF HB_ISEVALITEM( ::sl_tabActivate )
RETURN EVENT_HANDLED
ENDIF
CASE nMessage == HB_GTE_COMMAND
CASE nMessage == HB_GTE_RESIZED
::sendMessage( WIN_WM_SIZE, 0, 0 )
RETURN EVENT_HANDLED
CASE nMessage == HB_GTE_NOTIFY
aHdr := wvg_GetNMHdrInfo( aNM[ 2 ] )
DO CASE
CASE aHdr[ NMH_code ] == -551 /* TCN_SELCHANGE */
ENDCASE
CASE nMessage == HB_GTE_CTLCOLOR
RETURN wapi_GetStockObject( WIN_NULL_BRUSH )
ENDCASE
RETURN EVENT_UNHANDLED
A GTWVG tem a resposta pra tudo.
NÃO ADIANTA OLHAR OS EXEMPLOS. Eles não mostram NADA do que ela é capaz de fazer.
Apenas não foi dada importância à parte GUI, mas está lá.
Por exemplo, esse tabpage, nem sequer existe exemplo de uso.
Antes existia a GTWVT, que era bem mais estilo console.
Ela faz parte da lib GTWVG, e a maioria dos exemplos faz uso dela.
Pode ser interessante dar uma olhada, talvez começando pelo wnd.prg, que é a base de tudo, a criação de janelas.
Talvez falte uma DIALOG, pra gerenciar todos os controles que já existem, e os próximos, em ambiente realmente GUI.
Outro fonte, parthldr.prg (part handler) veja se não lhe é familiar
Código: Selecionar todos
/* This will be called by the WvgCrt() console for various events to be propogated to child controls */
METHOD WvgPartHandler:notifier( nEvent, xParams )
LOCAL aPos, aMenuItem, nIndex, nCtrlID, oObj
LOCAL nReturn := 0
DO CASE
CASE nEvent == HB_GTE_MOUSE
DO CASE
CASE xParams[ 1 ] == WIN_WM_MOUSEHOVER
aPos := { xParams[ 3 ], xParams[ 4 ] }
CASE xParams[ 1 ] == WIN_WM_MOUSELEAVE
/* Nothing */
OTHERWISE
aPos := iif( ::mouseMode == 2, { xParams[ 3 ], xParams[ 4 ] }, { xParams[ 5 ], xParams[ 6 ] } )
ENDCASE
SWITCH xParams[ 1 ]
CASE WIN_WM_MOUSEHOVER
IF HB_ISEVALITEM( ::sl_enter )
Eval( ::sl_enter, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MOUSELEAVE
IF HB_ISEVALITEM( ::sl_leave )
Eval( ::sl_leave, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_RBUTTONDOWN
IF HB_ISEVALITEM( ::sl_rbDown )
Eval( ::sl_rbDown, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_LBUTTONDOWN
IF HB_ISEVALITEM( ::sl_lbDown )
Eval( ::sl_lbDown, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_RBUTTONUP
IF HB_ISEVALITEM( ::sl_rbUp )
Eval( ::sl_rbUp, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_LBUTTONUP
IF HB_ISEVALITEM( ::sl_lbUp )
Eval( ::sl_lbUp, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_RBUTTONDBLCLK
IF HB_ISEVALITEM( ::sl_rbDblClick )
Eval( ::sl_rbDblClick, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_LBUTTONDBLCLK
IF HB_ISEVALITEM( ::sl_lbDblClick )
Eval( ::sl_lbDblClick, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MBUTTONDOWN
IF HB_ISEVALITEM( ::sl_mbDown )
Eval( ::sl_mbDown, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MBUTTONUP
IF HB_ISEVALITEM( ::sl_mbClick )
Eval( ::sl_mbClick, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MBUTTONDBLCLK
IF HB_ISEVALITEM( ::sl_mbDblClick )
Eval( ::sl_mbDblClick, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MOUSEMOVE
IF HB_ISEVALITEM( ::sl_motion )
Eval( ::sl_motion, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_MOUSEWHEEL
IF HB_ISEVALITEM( ::sl_wheel )
Eval( ::sl_wheel, aPos, , Self )
ENDIF
EXIT
CASE WIN_WM_NCMOUSEMOVE
EXIT
ENDSWITCH
Se olhar os exemplos da GTWVG, nem dá pra ver que tudo isso existe.
Fizeram muitos exemplos da parte "não gui", que acabam escondendo o que realmente interessa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Só mais esta parte, trata o caso de um controle interceptar suas próprias mensagens do Windows
É ou não é um ambiente GUI sub-utilizado?
Código: Selecionar todos
/* This will be called if a control is assigned its own WndProc via ::SetWindowProcCallback() */
METHOD WvgPartHandler:controlWndProc( hWnd, nMessage, nwParam, nlParam )
LOCAL nCtrlID, nNotifctn, hWndCtrl, nObj, aMenuItem, oObj, nReturn
SWITCH nMessage
CASE WIN_WM_ERASEBKGND
IF ::objType == objTypeDA .AND. ! Empty( ::hBrushBG )
::handleEvent( HB_GTE_CTLCOLOR, { wvg_n2p( nwParam ), wvg_n2p( nlParam ) } )
ENDIF
EXIT
CASE WIN_WM_COMMAND
nCtrlID := wapi_LOWORD( nwParam )
nNotifctn := wapi_HIWORD( nwParam )
hWndCtrl := wvg_n2p( nlParam )
IF Empty( hWndCtrl ) /* It is menu */
IF HB_ISOBJECT( ::oMenu )
IF ! Empty( aMenuItem := ::oMenu:FindMenuItemById( nCtrlID ) )
IF HB_ISEVALITEM( aMenuItem[ 2 ] )
Eval( aMenuItem[ 2 ], aMenuItem[ 1 ], , aMenuItem[ 4 ] )
ELSEIF HB_ISEVALITEM( aMenuItem[ 3 ] )
Eval( aMenuItem[ 3 ], aMenuItem[ 1 ], , aMenuItem[ 4 ] )
ENDIF
ENDIF
ENDIF
RETURN EVENT_HANDLED
ELSE
IF ( nObj := AScan( ::aChildren, {| o | o:nID == nCtrlID } ) ) > 0
nReturn := ::aChildren[ nObj ]:handleEvent( HB_GTE_COMMAND, { nNotifctn, nCtrlID, hWndCtrl } )
IF HB_ISNUMERIC( nReturn ) .AND. nReturn == 0
RETURN EVENT_HANDLED
ENDIF
ENDIF
ENDIF
EXIT
CASE WIN_WM_NOTIFY
IF ( nObj := AScan( ::aChildren, {| o | o:nID == nwParam } ) ) > 0
nReturn := ::aChildren[ nObj ]:handleEvent( HB_GTE_NOTIFY, { nwParam, wvg_n2p( nlParam ) } )
IF HB_ISNUMERIC( nReturn ) .AND. nReturn == EVENT_HANDLED
RETURN EVENT_HANDLED
ELSEIF HB_ISLOGICAL( nReturn )
RETURN nReturn
ENDIF
ENDIF
EXIT
CASE WIN_WM_CTLCOLORLISTBOX
CASE WIN_WM_CTLCOLORMSGBOX
CASE WIN_WM_CTLCOLOREDIT
CASE WIN_WM_CTLCOLORBTN
CASE WIN_WM_CTLCOLORDLG
CASE WIN_WM_CTLCOLORSCROLLBAR
CASE WIN_WM_CTLCOLORSTATIC
oObj := ::findObjectByHandle( wvg_n2p( nlParam ) )
IF HB_ISOBJECT( oObj )
nReturn := oObj:handleEvent( HB_GTE_CTLCOLOR, { wvg_n2p( nwParam ), wvg_n2p( nlParam ) } )
IF HB_ISNUMERIC( nReturn ) .AND. nReturn == EVENT_UNHANDLED
RETURN wapi_CallWindowProc( ::nOldProc, hWnd, nMessage, nwParam, nlParam )
ELSE
RETURN nReturn
ENDIF
ENDIF
EXIT
CASE WIN_WM_HSCROLL
::handleEvent( HB_GTE_HSCROLL, { wapi_LOWORD( nwParam ), wapi_HIWORD( nwParam ), wvg_n2p( nlParam ) } )
RETURN EVENT_HANDLED
CASE WIN_WM_VSCROLL
IF ::handleEvent( HB_GTE_VSCROLL, { wapi_LOWORD( nwParam ), wapi_HIWORD( nwParam ), wvg_n2p( nlParam ) } ) == EVENT_HANDLED
RETURN EVENT_HANDLED
ENDIF
EXIT
CASE WIN_WM_CAPTURECHANGED
EXIT
#if 0
CASE WIN_WM_MOUSEMOVE
IF ::objType == objTypeScrollBar
IF ! ::lTracking
::lTracking := wvg_BeginMouseTracking( ::hWnd )
ENDIF
ENDIF
EXIT
CASE WIN_WM_MOUSEHOVER
IF ::objType == objTypeScrollBar
IF ::oParent:objType == objTypeCrt
wapi_SetFocus( ::oParent:pWnd )
ENDIF
RETURN EVENT_HANDLED
ENDIF
EXIT
CASE WIN_WM_MOUSELEAVE
IF ::objType == objTypeScrollBar
::lTracking := .F.
IF ::oParent:objType == objTypeCrt
wapi_SetFocus( ::oParent:pWnd )
ENDIF
ENDIF
EXIT
#endif
CASE WIN_WM_VKEYTOITEM
CASE WIN_WM_CHARTOITEM
::handleEvent( HB_GTE_ANY, { nMessage, nwParam, wvg_n2p( nlParam ) } )
EXIT
OTHERWISE
IF ::handleEvent( HB_GTE_ANY, { nMessage, nwParam, wvg_n2p( nlParam ) } ) == EVENT_HANDLED
RETURN EVENT_HANDLED
ENDIF
EXIT
ENDSWITCH
RETURN wapi_CallWindowProc( ::nOldProc, hWnd, nMessage, nwParam, nlParam )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
José no estoy tratado de convencerte de nada simplemente traté de explicar lo que se sobre programación en Windows. Las gt son muy sencillas de implementar en comparacion con las lib tradicionales por lo limitado de su funcionamiento y estructura, por ejemplo es imposible crear una lib tradicional sin usar un array pública y pretender tener un control total sobre todos los componentes GUI creados. Pero adelante con tu idea, muchas cosas se lograron porque alguien pensó que era posible o almenos no sabía que era imposible. rs rs
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Não concordo, ou talvez estejamos falando de coisas diferentes.es imposible crear una lib tradicional sin usar un array pública y pretender tener un control total sobre todos los componentes GUI creados
O que há de controle total ao usar um activex?
Não é o controle activex responsável por tudo que tem dentro dele?
Porque não basta fazer o mesmo com cada janela?
frm main conhecer apenas o que tem dentro dele
frm auxiliar conhecer apenas o que tem dentro dele
Isso não seria equivalente ao controle que é feito para um activex?
Ou estou errado?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
El ActiveX son una encapsulacion de funciones del api creadas por microsoft que es tipo caja negra, son de muy alto nivel y es algo totalmente fuera del control del usuario, son fáciles de usar pero muy limitadas. En cambio usando directo las api de Windows como lo hacen las lib GUI tradicionales se puede tener un control total del sistema.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Infelizmente não consigo provar nada sem ajuda, porque sempre acaba envolvendo rotina em C.
Alguma sugestão de como isso poderia ser provado?
Alguma sugestão de como isso poderia ser provado?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
José, explícame bien que es lo que quieres y el fin de semana te preparo un ejemplo.
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
José, si quieres ir probando baja HMG oficial
http://www.hmgforum.com/viewtopic.php?f=43&t=4738
Y coloca Set MainFirst off al inicio de la función main y no crees ninguna ventana tipo main.
Fíjate en source/debugger que hay un ejemplo de como hacerlo.
Fíjate en los fuentes que existen dos archivos, uno es puro Hb y el otro es la parte HMG, fíjate como se crea la ventana del debugger en este último. Pero activa las ventanas con el Active Windows normal (como en los demo), no uses el Active Windows como esta en el debugger.
PD: ahora me acuerdo, tenes que poder hacer lo mismo en HMG Ex. porque ese debugger Grigory lo adaptó parcialmente a HMG Extended, digo parcialmente porque hay cosas que sólo existen en HMG oficial.
http://www.hmgforum.com/viewtopic.php?f=43&t=4738
Y coloca Set MainFirst off al inicio de la función main y no crees ninguna ventana tipo main.
Fíjate en source/debugger que hay un ejemplo de como hacerlo.
Fíjate en los fuentes que existen dos archivos, uno es puro Hb y el otro es la parte HMG, fíjate como se crea la ventana del debugger en este último. Pero activa las ventanas con el Active Windows normal (como en los demo), no uses el Active Windows como esta en el debugger.
PD: ahora me acuerdo, tenes que poder hacer lo mismo en HMG Ex. porque ese debugger Grigory lo adaptó parcialmente a HMG Extended, digo parcialmente porque hay cosas que sólo existen en HMG oficial.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
O debugger, seria o mesmo normal do Harbour? ou é outro?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Essa linha do main não deu certo.
demo.prg(9) Error E0030 Syntax error "syntax error at 'MAINFIRST'"
Quanto ao DEBUG... Estamos falando de Harbour.
Só não mostrou o fonte do FMG.
Mas nem precisa console.
Se não viu antes, veja minigui usando GTWVG pra debug.
Estou usando o samples/basics/multiwin com ajuste pra debug.
demo.prg(9) Error E0030 Syntax error "syntax error at 'MAINFIRST'"
Quanto ao DEBUG... Estamos falando de Harbour.
Só não mostrou o fonte do FMG.
Mas nem precisa console.
Se não viu antes, veja minigui usando GTWVG pra debug.
Estou usando o samples/basics/multiwin com ajuste pra debug.
Código: Selecionar todos
#include "hmg.ch"
Function Main
hb_gtReload( "WVG" )
SetMode( 33, 100 )
CLS
Inkey(0)
Load Window Main
Center Window Main
Activate Window Main
Return
FUNCTION hb_GtSys
REQUEST HB_GT_WVG_DEFAULT
RETURN NIL
Código: Selecionar todos
mgcompile *.prg -b -lgtwvg -I. -gui
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Me enganei.
Não dá certo, porque temos uma nova janela Windows com o debug.
Essa janela a mais não é prevista na ação geral da HMG, talvez até seja considerada a Main.
Não dá certo, porque temos uma nova janela Windows com o debug.
Essa janela a mais não é prevista na ação geral da HMG, talvez até seja considerada a Main.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Retirei o GT_RELOAD(), pensando se tratar de multithread, mas não adiantou.
Num momento ou outro acaba naquele erro.
Só dá certo por console mesmo.
Talvez seja a rotina da HMG que trata os eventos de janela, e considera a janela da GTWVG como sendo mais uma das janelas da HMG, sendo que não é.
Num momento ou outro acaba naquele erro.
Só dá certo por console mesmo.
Talvez seja a rotina da HMG que trata os eventos de janela, e considera a janela da GTWVG como sendo mais uma das janelas da HMG, sendo que não é.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Divertido testar hmg exended
El debugger no es el de Hb, los dbg para Hb que existen no funcionan correctamente en modo GUI debido al lazo de msg de Windows. El debugger de HMG es un debugger que desarrolle especialmente para superar las limitaciones de los otros. En la doc esta como usarlo
http://www.hmgforum.com/hmgdoc/data/index.htm
http://www.hmgforum.com/hmgdoc/data/index.htm
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Divertido testar hmg exended
Foi falta de atenção minha.
Mas continuo não seguindo o manual..... rs
usando meu BAT, compilando o samples\basics\multiwin
precisei indicar a pasta atual como include, pra buscar FMG, e a lib do debugger.
Sem problemas quanto às imagens, devo não ter incluído os arquivos RC nos BATs.
Mas continuo não seguindo o manual..... rs
usando meu BAT, compilando o samples\basics\multiwin
precisei indicar a pasta atual como include, pra buscar FMG, e a lib do debugger.
Código: Selecionar todos
mgcompile *.prg -b -I. -ldebugger
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/