Hwgui 2.22 release 1
Moderador: Moderadores
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Hwgui 2.22 release 1
Bom dia
Então realmente eu uso a gtwvw a anos, todo o sistema esta funcionando com GTWVW o problema é que ela é bem limitada para o que eu preciso fazer, "mais visual", e ai que entra o problema, como o programa é enorme, muitos modulos eu teria que refazer tudo do zero o que levaria um absurdo de tempo, então eu pretendia unir as duas no mesmo sistema, mas mudando módulo por módulo, exemplo, um dia o cadastro de cidades, outro de vendedores, outro dia o de clientes e assim por diante até restar apenas a tela principal de menus e ai por fim, este seria alterado e de vez abandonado a gtwvw.
Obtive exito nisto com GTWVW + QT, só não consigo desenvolver o modulo na QT, visto que ela é de dificil compreensão e execução, já a HWGUI é mais facil de compreensão.
O problema esta em juntar as duas no mesmo sistema, feito isto "simbora" pra frente.
Resumindo, tenho duas vertentes para seguir.
1-GTWVW + QT ( prefiro, mas não me adptei ainda)
2-GTWVW + HWGUI ( segunda opção que talvez torne-se primeira)
E por fim, desaparecer com a GTWVW.
Sou teimoso, vou batendo cabeça até dar um jeito, mas se alguem souber o caminho das pedras para eliminar este problema, fico muito grato.
Grato
Então realmente eu uso a gtwvw a anos, todo o sistema esta funcionando com GTWVW o problema é que ela é bem limitada para o que eu preciso fazer, "mais visual", e ai que entra o problema, como o programa é enorme, muitos modulos eu teria que refazer tudo do zero o que levaria um absurdo de tempo, então eu pretendia unir as duas no mesmo sistema, mas mudando módulo por módulo, exemplo, um dia o cadastro de cidades, outro de vendedores, outro dia o de clientes e assim por diante até restar apenas a tela principal de menus e ai por fim, este seria alterado e de vez abandonado a gtwvw.
Obtive exito nisto com GTWVW + QT, só não consigo desenvolver o modulo na QT, visto que ela é de dificil compreensão e execução, já a HWGUI é mais facil de compreensão.
O problema esta em juntar as duas no mesmo sistema, feito isto "simbora" pra frente.
Resumindo, tenho duas vertentes para seguir.
1-GTWVW + QT ( prefiro, mas não me adptei ainda)
2-GTWVW + HWGUI ( segunda opção que talvez torne-se primeira)
E por fim, desaparecer com a GTWVW.
Sou teimoso, vou batendo cabeça até dar um jeito, mas se alguem souber o caminho das pedras para eliminar este problema, fico muito grato.
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Hwgui 2.22 release 1
Ou então tente com o 3.4, que não vai ter esse conflito.leandrolinauer escreveu:Sou teimoso, vou batendo cabeça até dar um jeito, mas se alguem souber o caminho das pedras para eliminar este problema, fico muito grato.
Só não sei se vai ter outras incompatibilidades com a própria gtwvw, mas aí só testando pra saber.
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
Hwgui 2.22 release 1
Ou altere esses nomes nos fontes da gtwvw do 3.2.
Coloque uma letra a mais, no início ou no final do nome das funções.
Coloque uma letra a mais, no início ou no final do nome das funções.
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/
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Hwgui 2.22 release 1
Boa tarde José Quintas.
Fiz como me falou, desta vez consegui compilar mudando na HWGUI e agora esta compilando juntas a GTWVW e HWGUI.
Mudei a ordem no HBP passando a HWGUI para depois da GTWVW, da forma abaixo
@hbmk.hbm
@hbmkQT.hbm
@hbmkSQL.hbm
-lgtwvw.hbc //primeiro a GTWVW
@hbmkHW.hbm //depois a HWGUI
Compila e linka tudo blz, mas na execução do sistema, ele vai para os processos mas nada aparece na tela.
Abaixo o HELPDEMO.PRG separado dos fontes gtwvw
LOG hb_out.log
Application Internal Error - F:\ALLPRG\Harbour32\LeSoftA\GesCom.exe
Terminated at: 2020-08-18 15:26:11
Unrecoverable error 6005: Exception error:
Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:005EA0E9
EAX:00000000 EBX:00F683BC ECX:00000002 EDX:00000000
ESI:00F67D3C EDI:00000002 EBP:0028FC0C
CS:EIP
005EA0E9 SS:ESP:002B:0028FBB0
DS:002B ES:002B FS:0053 GS:002B
Flags:00010202
Exception Parameters: 00000000 00000004
CS:EIP: 8B 50 04 85 D2 75 40 8B 98 E0 01 00 00 C7 04 24
SS:ESP: 00000001 008EE7E0 00F67D3C 00630D6D 00000021 00000001 00F683BC 00632BE1 00000021 00F68434 008EEAC0 0063B7A0 00F68434 00F7FE74 008EE7E0 00000000
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
Modules:
00400000 00B0A000 F:\ALLPRG\Harbour32\LeSoftA\GesCom.exe
77670000 00180000 C:\Windows\SysWOW64\ntdll.dll
75060000 00110000 C:\Windows\syswow64\kernel32.dll
76C20000 00047000 C:\Windows\syswow64\KERNELBASE.dll
75510000 000A1000 C:\Windows\syswow64\ADVAPI32.dll
770E0000 000AC000 C:\Windows\syswow64\msvcrt.dll
76AC0000 00019000 C:\Windows\SysWOW64\sechost.dll
75280000 000F0000 C:\Windows\syswow64\RPCRT4.dll
74FF0000 00060000 C:\Windows\syswow64\SspiCli.dll
74FE0000 0000C000 C:\Windows\syswow64\CRYPTBASE.dll
71EB0000 0019E000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.DLL
771F0000 00090000 C:\Windows\syswow64\GDI32.dll
75180000 00100000 C:\Windows\syswow64\USER32.dll
76D40000 0000A000 C:\Windows\syswow64\LPK.dll
76A20000 0009D000 C:\Windows\syswow64\USP10.dll
76CA0000 00057000 C:\Windows\syswow64\SHLWAPI.dll
767C0000 0007B000 C:\Windows\syswow64\COMDLG32.DLL
75940000 00C4A000 C:\Windows\syswow64\SHELL32.dll
669B0000 0015C000 F:\ALLPRG\Harbour32\LeSoftA\fbclient.dll
76EB0000 00035000 C:\Windows\syswow64\WS2_32.dll
77280000 00006000 C:\Windows\syswow64\NSI.dll
66C20000 000BF000 C:\Windows\system32\MSVCR100.dll
6BE90000 00012000 C:\Windows\system32\MPR.dll
76D50000 0015C000 C:\Windows\syswow64\ole32.dll
71BC0000 0001C000 C:\Windows\system32\IPHLPAPI.DLL
71BB0000 00007000 C:\Windows\system32\WINNSI.DLL
64940000 00014000 F:\ALLPRG\Harbour32\LeSoftA\libwinpthread-1.dll
6D130000 0008C000 C:\Windows\system32\ODBC32.dll
77050000 0008F000 C:\Windows\syswow64\OLEAUT32.dll
68880000 0052E000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Core.dll
6E940000 00024000 F:\ALLPRG\Harbour32\LeSoftA\libgcc_s_dw2-1.dll
6FC40000 00101000 F:\ALLPRG\Harbour32\LeSoftA\libstdc++-6.dll
61940000 00520000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Gui.dll
6DF40000 00060000 F:\ALLPRG\Harbour32\LeSoftA\Qt5PrintSupport.dll
74590000 00051000 C:\Windows\system32\WINSPOOL.DRV
01080000 00645000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Widgets.dll
72050000 00032000 C:\Windows\system32\WINMM.DLL
77190000 00060000 C:\Windows\system32\IMM32.DLL
76B20000 000CC000 C:\Windows\syswow64\MSCTF.dll
6D0F0000 00038000 C:\Windows\system32\odbcint.dll
6A880000 00164000 F:\ALLPRG\Harbour32\LeSoftA\platforms\qwindows.dll
74680000 00080000 C:\Windows\system32\uxtheme.dll
74510000 00013000 C:\Windows\system32\dwmapi.dll
Called from WVW_SETTITLE(0)
Called from CONFIGURA_SISTEMA(523) in KMEGALIB.PRG
Called from MAIN(451) in KCDOCINI.PRG
------------------------------------------------------------------------
Fiz como me falou, desta vez consegui compilar mudando na HWGUI e agora esta compilando juntas a GTWVW e HWGUI.
Mudei a ordem no HBP passando a HWGUI para depois da GTWVW, da forma abaixo
@hbmk.hbm
@hbmkQT.hbm
@hbmkSQL.hbm
-lgtwvw.hbc //primeiro a GTWVW
@hbmkHW.hbm //depois a HWGUI
Compila e linka tudo blz, mas na execução do sistema, ele vai para os processos mas nada aparece na tela.
Abaixo o HELPDEMO.PRG separado dos fontes gtwvw
Código: Selecionar todos
#include "windows.ch"
#include "guilib.ch"
PROCEDURE HELPDEMO()
Local cVar := Space(30)
Local oVar
Local oModDlg
Local xVar := Space(50)
INIT DIALOG oModDlg TITLE "Press F1 to invoke Context Help" ;
AT 210,10 SIZE 300,300 HELPID 3
@ 20,10 SAY "Input something:" SIZE 260, 22
//@ 20,35 GET oVar VAR cVar SIZE 260, 26 COLOR hwg_ColorC2N("FF0000") TOOLTIP "Set focus on this control and press help"
@ 160,170 GET xVar SIZE 80, 20 TOOLTIP "Set focus on this control and press help"
@ 20,240 BUTTON "Ok" ID IDOK SIZE 100, 32
@ 180,240 BUTTON "Cancel" ID IDCANCEL SIZE 100, 32
oVar:helpid := 4
ACTIVATE DIALOG oModDlg
Return Nil
Application Internal Error - F:\ALLPRG\Harbour32\LeSoftA\GesCom.exe
Terminated at: 2020-08-18 15:26:11
Unrecoverable error 6005: Exception error:
Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:005EA0E9
EAX:00000000 EBX:00F683BC ECX:00000002 EDX:00000000
ESI:00F67D3C EDI:00000002 EBP:0028FC0C
CS:EIP
DS:002B ES:002B FS:0053 GS:002B
Flags:00010202
Exception Parameters: 00000000 00000004
CS:EIP: 8B 50 04 85 D2 75 40 8B 98 E0 01 00 00 C7 04 24
SS:ESP: 00000001 008EE7E0 00F67D3C 00630D6D 00000021 00000001 00F683BC 00632BE1 00000021 00F68434 008EEAC0 0063B7A0 00F68434 00F7FE74 008EE7E0 00000000
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
Modules:
00400000 00B0A000 F:\ALLPRG\Harbour32\LeSoftA\GesCom.exe
77670000 00180000 C:\Windows\SysWOW64\ntdll.dll
75060000 00110000 C:\Windows\syswow64\kernel32.dll
76C20000 00047000 C:\Windows\syswow64\KERNELBASE.dll
75510000 000A1000 C:\Windows\syswow64\ADVAPI32.dll
770E0000 000AC000 C:\Windows\syswow64\msvcrt.dll
76AC0000 00019000 C:\Windows\SysWOW64\sechost.dll
75280000 000F0000 C:\Windows\syswow64\RPCRT4.dll
74FF0000 00060000 C:\Windows\syswow64\SspiCli.dll
74FE0000 0000C000 C:\Windows\syswow64\CRYPTBASE.dll
71EB0000 0019E000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.DLL
771F0000 00090000 C:\Windows\syswow64\GDI32.dll
75180000 00100000 C:\Windows\syswow64\USER32.dll
76D40000 0000A000 C:\Windows\syswow64\LPK.dll
76A20000 0009D000 C:\Windows\syswow64\USP10.dll
76CA0000 00057000 C:\Windows\syswow64\SHLWAPI.dll
767C0000 0007B000 C:\Windows\syswow64\COMDLG32.DLL
75940000 00C4A000 C:\Windows\syswow64\SHELL32.dll
669B0000 0015C000 F:\ALLPRG\Harbour32\LeSoftA\fbclient.dll
76EB0000 00035000 C:\Windows\syswow64\WS2_32.dll
77280000 00006000 C:\Windows\syswow64\NSI.dll
66C20000 000BF000 C:\Windows\system32\MSVCR100.dll
6BE90000 00012000 C:\Windows\system32\MPR.dll
76D50000 0015C000 C:\Windows\syswow64\ole32.dll
71BC0000 0001C000 C:\Windows\system32\IPHLPAPI.DLL
71BB0000 00007000 C:\Windows\system32\WINNSI.DLL
64940000 00014000 F:\ALLPRG\Harbour32\LeSoftA\libwinpthread-1.dll
6D130000 0008C000 C:\Windows\system32\ODBC32.dll
77050000 0008F000 C:\Windows\syswow64\OLEAUT32.dll
68880000 0052E000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Core.dll
6E940000 00024000 F:\ALLPRG\Harbour32\LeSoftA\libgcc_s_dw2-1.dll
6FC40000 00101000 F:\ALLPRG\Harbour32\LeSoftA\libstdc++-6.dll
61940000 00520000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Gui.dll
6DF40000 00060000 F:\ALLPRG\Harbour32\LeSoftA\Qt5PrintSupport.dll
74590000 00051000 C:\Windows\system32\WINSPOOL.DRV
01080000 00645000 F:\ALLPRG\Harbour32\LeSoftA\Qt5Widgets.dll
72050000 00032000 C:\Windows\system32\WINMM.DLL
77190000 00060000 C:\Windows\system32\IMM32.DLL
76B20000 000CC000 C:\Windows\syswow64\MSCTF.dll
6D0F0000 00038000 C:\Windows\system32\odbcint.dll
6A880000 00164000 F:\ALLPRG\Harbour32\LeSoftA\platforms\qwindows.dll
74680000 00080000 C:\Windows\system32\uxtheme.dll
74510000 00013000 C:\Windows\system32\dwmapi.dll
Called from WVW_SETTITLE(0)
Called from CONFIGURA_SISTEMA(523) in KMEGALIB.PRG
Called from MAIN(451) in KCDOCINI.PRG
------------------------------------------------------------------------
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Hwgui 2.22 release 1
Deu erro na hora de alterar o título da janela, mas disse que não existe janela.
Tente pelo fonte forçar a gtwvw como principal, ou talvez -gtwvw na hora de compilar.
De repente, a gtwvw foi linqueditada, mas o fonte apenas usa o que tem disponível, e nem sabe da existência da gtwvw.
Talvez aquilo de setar obrigatoriamente gtwvw
Não tenho certeza pra GTWVW, talvez:
Tente pelo fonte forçar a gtwvw como principal, ou talvez -gtwvw na hora de compilar.
De repente, a gtwvw foi linqueditada, mas o fonte apenas usa o que tem disponível, e nem sabe da existência da gtwvw.
Talvez aquilo de setar obrigatoriamente gtwvw
Não tenho certeza pra GTWVW, talvez:
Código: Selecionar todos
FUNCTION HB_GTSYS()
REQUEST GT_WVW_DEFAULT
RETURN NIL
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
Hwgui 2.22 release 1
Faz o seguinte: vai por outro caminho, igual costumo fazer.
Tá usando GTWVW, ok....
Tenta centralizar tudo da GTWVW num único fonte.
Os demais fontes chamando essas rotinas.
Ao fazer isso, seus fontes nem saberão que existe GTWVW.
Ao mesmo tempo, de um jeito que trocando só essas funções centrais, já possa trocar de LIB.
Ficar preso a qualquer LIB não é bom, ainda mais não sendo sua LIB definitiva.
Tá usando GTWVW, ok....
Tenta centralizar tudo da GTWVW num único fonte.
Os demais fontes chamando essas rotinas.
Ao fazer isso, seus fontes nem saberão que existe GTWVW.
Ao mesmo tempo, de um jeito que trocando só essas funções centrais, já possa trocar de LIB.
Ficar preso a qualquer LIB não é bom, ainda mais não sendo sua LIB definitiva.
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/
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Hwgui 2.22 release 1
Bom dia.
Fiz o teste da seguinte forma:
- HARBOUR 3.2 principal gtwvw + modulo hwgui = Ocorre o mesmo erro, não executa o sistema, esta é a forma que eu queria iniciar.
- HARBOUR 3.2 principal hwgui + modulo gtwvw = Mesmo erro
- HARBOUR 3.4 principal gtwvw + modulo hwgui = Ocorre o mesmo erro
- HARBOUR 3.4 principal hwgui + modulo gtwvw = Ocorre o Mesmo erro
Ou seja, de qualquer forma não funciona GTWVW com HWGUI, como funciona bem GTWVW + QT.
Pelo jeito terei que abandonar HWGUI, e estudar a fundo QT para poder montar os modulos em QT, claro sei que é bem melhor e estável, o problema que é bem dificil de acertar, não há exemplos de QT com HARBOUR e isto pesa muito.
Bom de qualquer forma, obrigado a todos.
Fiz o teste da seguinte forma:
- HARBOUR 3.2 principal gtwvw + modulo hwgui = Ocorre o mesmo erro, não executa o sistema, esta é a forma que eu queria iniciar.
- HARBOUR 3.2 principal hwgui + modulo gtwvw = Mesmo erro
- HARBOUR 3.4 principal gtwvw + modulo hwgui = Ocorre o mesmo erro
- HARBOUR 3.4 principal hwgui + modulo gtwvw = Ocorre o Mesmo erro
Ou seja, de qualquer forma não funciona GTWVW com HWGUI, como funciona bem GTWVW + QT.
Pelo jeito terei que abandonar HWGUI, e estudar a fundo QT para poder montar os modulos em QT, claro sei que é bem melhor e estável, o problema que é bem dificil de acertar, não há exemplos de QT com HARBOUR e isto pesa muito.
Bom de qualquer forma, obrigado a todos.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Hwgui 2.22 release 1
Ola!
Tem algum exemplo ai pronto, simples para testar ? Com a WVW + Hwgui.
Pelo que li, tem que ser o "Main Window e Menu" na Hwgui, e os dialogs em WVW.
Alias acho mais fácil fazer tela por tela, devagarinho, tudo em Hwgui, que fazer essa mistura.
Saudações,
Itamar M. Lins Jr.
Tem algum exemplo ai pronto, simples para testar ? Com a WVW + Hwgui.
Pelo que li, tem que ser o "Main Window e Menu" na Hwgui, e os dialogs em WVW.
Alias acho mais fácil fazer tela por tela, devagarinho, tudo em Hwgui, que fazer essa mistura.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Hwgui 2.22 release 1
Compilado com harbour 3.2 / GCC 10.2, usando GTWVW
Janela chamada a partir da HwGui Removi os conflitos de nomes da GTWVW
De GetFontDialogUnits
Para GetFontDialogUnits_
A principio só essa função no código C
Janela chamada a partir da HwGui Removi os conflitos de nomes da GTWVW
De GetFontDialogUnits
Para GetFontDialogUnits_
A principio só essa função no código C
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Hwgui 2.22 release 1
Bom dia asimoes
Foi exatamente o que eu fiz, só que eu mudei da hwgui
De GetFontDialogUnits
Para HWGetFontDialogUnits
Compilei e tudo certo, gerei exemplos da pasta hwgui e tudo certo, gera e executa o sistema.
Aí juntei ao meu sistema em GTWVW compila tudo certo, só que na hora que habilito o fonte.prg em hwgui o sistema não executa, da conflito na gtwvw.
Fiz testando em um aplicativo gtwvw pequeno que inicia 100% mas quando invoco um modulo em HWGUI da erro, fiz ao contrario e tbem ocorre o mesmo erro.
Há alguma peculiaridade na forma de compilar?
Vc pode me passar os seus exemplos juntamente com os hbm e hbp para eu testar aqui em pasta separada e ver se da certo?
Aí eu tento desvendar este mistério.
Grato
Foi exatamente o que eu fiz, só que eu mudei da hwgui
De GetFontDialogUnits
Para HWGetFontDialogUnits
Compilei e tudo certo, gerei exemplos da pasta hwgui e tudo certo, gera e executa o sistema.
Aí juntei ao meu sistema em GTWVW compila tudo certo, só que na hora que habilito o fonte.prg em hwgui o sistema não executa, da conflito na gtwvw.
Fiz testando em um aplicativo gtwvw pequeno que inicia 100% mas quando invoco um modulo em HWGUI da erro, fiz ao contrario e tbem ocorre o mesmo erro.
Há alguma peculiaridade na forma de compilar?
Vc pode me passar os seus exemplos juntamente com os hbm e hbp para eu testar aqui em pasta separada e ver se da certo?
Aí eu tento desvendar este mistério.
Grato
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Hwgui 2.22 release 1
Do lado HwGui:
Do Lado GTWVW - Funtion Teste()
* ----------------------------------------------------------------------------------------------
Código: Selecionar todos
#include "hbthread.ch"
cRotina := "Teste()"
nThread := Hb_ThreadStart( HB_BITOR( HB_THREAD_INHERIT_PUBLIC, ;
HB_THREAD_INHERIT_PRIVATE, ;
HB_THREAD_INHERIT_MEMVARS, ;
HB_THREAD_MEMVARS_COPY ), ;
{ || &cRotina. } )
WaitThread( nThread )
FUNCTION WaitThread( nThread )
DO WHILE .T.
IF Hb_ThreadWait( nThread, 0.1, .T. ) == 1
EXIT
ENDIF
hwg_DoEvents()
ENDDO
RETURN Nil
* ----------------------------------------------------------------------------------------------
Código: Selecionar todos
/* Copyright 2005 Budyanto Dj. <budyanto@centrin.net.id>
This is an example on how to integrate GTWVW's combobox into
regular GET/GetList system. Be creative, do not be bound by
the ideas presented herein. There may be better ways to do it. */
#require "gtwvw"
#include "getexit.ch"
#include "inkey.ch"
#include "hbgtinfo.ch"
#define HB_SYMBOL_UNUSED( symbol ) ( symbol := ( symbol ) )
/* Two different keyboard handling method
(notes: WVW_CB_KBD_CLIPPER doesn't mimic anything from Cl*pper
it just 'feels like Cl*pper' to me) */
#define WVW_CB_KBD_STANDARD 0
#define WVW_CB_KBD_CLIPPER 1
// our preferred method (choose one of the above)
STATIC s_nCB_Kbd := WVW_CB_KBD_CLIPPER
// list of created comboboxes
STATIC s_aComboList := {}
// create these two as local, otherwise it will be assumed PRIVATE
MEMVAR __nCBid__, __temp__
#xcommand @ <row>, <col> COMBOBOX <var> ;
OPTIONS <aOptions> ;
WIDTH <nWidth> => ;
;
;
__nCBid__ := wvw_cbCreate( NIL, <row>, <col>, <nWidth>, ;
<aOptions>, ;
{| nWinNum, nId, nEvent, nIndex, temp | ;
CBhandler( nWinNum, nId, nEvent, nIndex, <"var">, GetList ), HB_SYMBOL_UNUSED( temp );
}, ;
NIL, NIL, s_nCB_Kbd, NIL ); ;
AAdd( s_aComboList, { __nCBid__, <"var"> } ); ;
__temp__ := wvw_cbFindString( NIL, __nCBid__, <var> ); ;
iif( __temp__ >= 0, wvw_cbSetIndex( NIL, __nCBid__, __temp__ ), NIL ); ;
SetPos( <row>, <col> ); ;
AAdd( GetList, _GET_( <var>, <"var">, Replicate( "X", <nWidth> ),, ) ) ; ;
ATail( GetList ):cargo := __nCBid__; ;
ATail( GetList ):reader := {| get | CBreader( get ) }
PROCEDURE Teste()
LOCAL getlist := {}
LOCAL mname := PadR( "Budyanto Dj.", 30 ), msex := "MALE", mage := 17, mstat := "married"
LOCAL __nCBid__, __temp__ // these two are temporary var required by CB get creation
#if defined( __HBSCRIPT__HBSHELL ) .AND. defined( __PLATFORM__WINDOWS )
//hbshell_gtSelect( "GTWVW" )
#endif
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO
Hb_LangSelect("PT")
Hb_CDPSelect( "PTISO" )
Hb_gtReload( "WVW" )
Hb_gtInfo( HB_GTI_FONTNAME, "Lucida Console" )
Hb_gtInfo( HB_GTI_WINTITLE, "Teste com GTWVW" )
Hb_gtInfo( HB_GTI_COMPATBUFFER, .F. )
//Hb_gtInfo( HB_GTI_ICONFILE, "AVI\ASAPREV.ICO" )
hb_gtInfo( HB_GTI_CLOSABLE, .T. ) //.t.
//Hb_gtInfo( HB_GTI_MAXIMIZED, .T. )
//Hb_gtInfo( HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
*
Set( _SET_EVENTMASK, INKEY_ALL + HB_INKEY_GTEVENT )
SetColor( "N/W,N/GR*,,,N/W" )
//wvw_SetCodepage( NIL, 255 )
//wvw_SetLineSpacing( NIL, 4 )
//wvw_SetLSpaceColor( NIL, 0 )
//wvw_cbSetFont( NIL, "Lucida Console", 14 ) // std: 20-2
#if 0
Set( _SET_TRACESTACK, 0 )
wvw_SetMouseMove( , .T. )
#endif
SetMode( 40, 100 )
CLS
// reset combobox list:
s_aComboList := {}
@ 0, 0 SAY "Name :" GET mname PICT "@K"
@ 1, 0 SAY "Sex :"
@ 1, 7 COMBOBOX msex OPTIONS { "Male", "Female", "Unknown" } WIDTH 10
@ 2, 0 SAY "Stat :"
@ 2, 7 COMBOBOX mstat OPTIONS { "Married", "Unmarried", "Widowed" } WIDTH 15
@ 3, 0 SAY "age :" GET mage PICT "999"
@ 4, 0 SAY "Comp : " + Hb_Compiler() + " " + Version()
READ
// disable all comboboxes:
AEval( s_aComboList, {| x | wvw_cbEnable( NIL, x[ 1 ], .F. ) } )
DevPos( 5, 0 )
? "name: '" + mname + "'"
? "sex : '" + msex + "'"
? "stat: '" + mstat + "'"
? "age : " + hb_ntos( mage )
? "that's what you've got from GET"
Inkey( 0 )
// destroy all comboboxes:
AEval( s_aComboList, {| x | wvw_cbDestroy( NIL, x[ 1 ] ) } )
s_aComboList := {}
?
? "Comboboxes have now been removed"
? "Now press ESC to exit"
//DO WHILE Inkey( 0 ) != K_ESC
//ENDDO
//QUIT
RETURN
/* this function is called by GTWVW indirectly, through the main program's codeblock
* which adds 'cVar' and 'GetList' parameter to the original 4 parameter passed
* by GTWVW.
*
* This is a sample of how a combobox bound to a GetList is handled.
*
* Events handled here:
* CBN_SETFOCUS: (3)
* Find i where GetList[i] is Get object beneath the combobox, then
* synchronize the contents, and let TGetList think she is working on it.
*
* CBN_KILLFOCUS: (4)
* Find i where GetList[i] is Get object beneath the combobox, then
* synchronize the contents.
*
* CBN_SELCHANGE: (1)
* (do nothing)
*/
FUNCTION CBhandler( nWinNum, nId, nEvent, nIndex, cVar, GetList )
LOCAL i, ccursel
LOCAL oGet := GetActive()
HB_SYMBOL_UNUSED( nIndex )
/* if GetList is empty, then READ session is already ended
* this should not be happenning!
*/
IF Empty( GetList )
MyAlert( "Bad practice: you left an active combobox, but READ already ended" )
RETURN NIL // ignore this event
ENDIF
DO CASE
CASE nEvent == 3 // CBN_SETFOCUS
i := AScan( GetList, {| x | x:Name == cVar } )
IF i > 0
/* ! oGet:HasFocus means
* CBN_SETFOCUS was NOT initiated from mouseclick
* then we don't need to bother about setting focus to the
* new GET. GetSys has already done that via CBreader().
* It is CBreader() that brought us here, so ignore it.
*/
IF oGet:HasFocus
/* So user has jumped here by clicking on the combobox.
* And this combobox has oNewGet beneath it.
* But do NOT assign oGetList:oGet into this oNewGet
* from within here!
* Remember that the reader() is still suspended
* on Inkey(0). If we change the ActiveGet from here, then
* when we leave this CB (eg. by means of K_TAB)
* this reader() will resume, but alas the active get
* is no longer the same! Thus reader() most likely
* will behave incorrectly.
*
* The trick is simple:
* reject the SETFOCUS. This will cause reader()
* resume its action on Inkey(0).
* All we have to do here is emulate the mouseclick
* event on oNewGet object beneath the CB, ie.
* putting K_LBUTTONDOWN into keyboard buffer
* at proper coordinate.
* We will then arrive at cbreader().
*/
SetWinFocus( nWinNum )
MSetPos( GetList[ i ]:row, GetList[ i ]:col + 1 )
hb_keyPut( K_LBUTTONDOWN )
ENDIF // oGet:HasFocus
ELSE // i==0
/* there's no GET object beneath the combobox.
* This must be a combobox living in the wild.
* Do what you want with it, we do nothing here.
*/
ENDIF
CASE nEvent == 4 // CBN_KILLFOCUS
// put current content of combobox into GET variable beneath it.
cCurSel := wvw_cbGetCurText( nWinNum, nId )
oGet:varput( cCurSel )
oGet:display() // this is optional
ENDCASE
RETURN NIL
/************* custom get reader ******************/
// This is the reader() for oGet, a GET object hidden beneath a combobox.
//
// Some notes:
// oGet:cargo stores combobox id over this oGet
//
FUNCTION CBreader( oGet )
LOCAL nKey, bKeyBlock
LOCAL oGetList := __GetListActive()
IF ! wvw_cbIsFocused( NIL, oGet:cargo )
wvw_cbSetFocus( NIL, oGet:cargo )
ENDIF
oGet:setfocus()
nKey := Inkey( 0 )
IF nKey == K_ENTER
// NOTE that in WVW_CB_KBD_CLIPPER mode we will never get here
oGet:exitState := GE_DOWN
ELSEIF nKey == K_UP
oGet:exitState := GE_UP
ELSEIF nKey == K_SH_TAB
oGet:exitState := GE_UP
ELSEIF nKey == K_DOWN
// NOTE that in WVW_CB_KBD_STANDARD mode we will never get here
oGet:exitState := GE_DOWN
ELSEIF nKey == K_TAB
oGet:exitState := GE_DOWN
ELSEIF nKey == K_ESC
IF Set( _SET_ESCAPE )
oGet:exitState := GE_ESCAPE
ENDIF
ELSEIF nKey == K_PGUP
oGet:exitState := GE_WRITE
ELSEIF nKey == K_PGDN
oGet:exitState := GE_WRITE
ELSEIF nKey == K_CTRL_HOME
oGet:exitState := GE_TOP
ELSEIF nKey == K_LBUTTONDOWN .OR. nKey == K_LDBLCLK
// is there any GET object hit?
IF ! Empty( HitTest( oGetList:aGetList, MRow(), MCol(), NIL ) )
oGet:exitState := GE_MOUSEHIT
ELSE
oGet:exitState := GE_NOEXIT
ENDIF
ELSEIF HB_ISBLOCK( bKeyBlock := SetKey( nKey ) )
oGetList:GetDoSetKey( bKeyBlock ) // Eval(bKeyBlock)
oGet:exitState := GE_NOEXIT
ENDIF
IF oGet:exitState != GE_NOEXIT
SetWinFocus( NIL ) // assume current window
oGet:killfocus()
ENDIF
RETURN NIL
#if 0
// move focus to GET object at GetList[nPos]
STATIC FUNCTION MoveToGet( GetList, nPos )
LOCAL i
LOCAL oGetList := __GetListActive()
LOCAL oGet
// leave current active get
oGet := GetActive()
IF oGet != NIL .AND. oGet:HasFocus
IF oGet:changed
IF GetPostValidate( oGet )
oGet:updatebuffer()
ELSE
// oGet:undo()
RETURN .F.
ENDIF
ENDIF
oGet:exitstate := GE_MOUSEHIT
oGetList:nNextGet := nPos
oGetList:settle( , .F. )
ENDIF
RETURN .T.
#endif
/* miscellaneous **********************************/
// Set FOCUS to window nWinNum
STATIC FUNCTION SetWinFocus( nWinNum )
LOCAL hWnd := wvw_GetWindowHandle( nWinNum )
win_SetFocus( hWnd )
RETURN NIL
STATIC FUNCTION MyAlert( cMsg, par2, par3, par4, par5, par6 )
LOCAL nLineSpacing := wvw_SetLineSpacing( NIL, 0 )
LOCAL retval := Alert( cMsg, par2, par3, par4, par5, par6 )
wvw_SetLineSpacing( NIL, nLineSpacing )
RETURN retval
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVW_DEFAULT
REQUEST HB_GT_WVW
RETURN Self
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Hwgui 2.22 release 1
Eu sinceramente usaria, GTWVG ou GTWVT o melhor seria converter aos poucos as janelas para hwgui usando o Designer ( versão do L.Basso)
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Hwgui 2.22 release 1
Note que eu estou Thread, para executar a função Teste(), tenho usado assim para chamar janelas GT*
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Hwgui 2.22 release 1
Do lado hwgui vai chamar alguma function no action do menu ou botão
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
Hwgui 2.22 release 1
Boa tarde.
Desculpe a demora estive apurado com outros problemas e acabei não testando ainda.
Bom, o que eu preciso é o seguinte:
Executo o sistema em GTWVW o qual tem o menu e neste menu deverá chamar um MODULO INTEIRO EM HWGUI.
Não entendi porque tem que chamar por THREAD, visto que com QT consigo compilar, executar e chamar o modulo em QT.
Já com HWGUI:
-Compilar com a biblioteca e nenhum modulo em HWGUI, o programa executa em GTWVW sem problemas, mas;
-Compilar com a biblioteca e um módulo em HWGUI, o programa nem executa para na primeira linha que encontrar alguma função GTWVW.
Se tem que chamar a HWGUI ou vice-versa através de THREAD, como devo chamar por exemplo no menu GTWVW.
Exemplo: menu em GTWVW reduzido amostra
Desculpe a demora estive apurado com outros problemas e acabei não testando ainda.
Bom, o que eu preciso é o seguinte:
Executo o sistema em GTWVW o qual tem o menu e neste menu deverá chamar um MODULO INTEIRO EM HWGUI.
Não entendi porque tem que chamar por THREAD, visto que com QT consigo compilar, executar e chamar o modulo em QT.
Já com HWGUI:
-Compilar com a biblioteca e nenhum modulo em HWGUI, o programa executa em GTWVW sem problemas, mas;
-Compilar com a biblioteca e um módulo em HWGUI, o programa nem executa para na primeira linha que encontrar alguma função GTWVW.
Se tem que chamar a HWGUI ou vice-versa através de THREAD, como devo chamar por exemplo no menu GTWVW.
Exemplo: menu em GTWVW reduzido amostra
Código: Selecionar todos
#command CREATEMENU <hMenu> => ;
<hMenu> := WVW_CreateMenu()
#command CREATESUBMENU <hMenuItem> ;
OF <hSubMenuItem> ;
PROMPT <cPrompt> => ;
<hSubMenuItem> := WVW_CreateMenu(); WVW_AppendMenu( <hMenuItem>, MF_POPUP, <hSubMenuItem>, <cPrompt> )
#command MENUITEM <hMenuItem> ;
OF <hMenu> ;
PROMPT <cPrompt> => ;
<hMenuItem> := WVW_CreateMenu(); WVW_AppendMenu( <hMenu>, MF_ENABLED + MF_POPUP, <hMenuItem>, <cPrompt> )
#command SUBMENUITEM <hMenuItem> ;
PROMPT <cPrompt> ;
ACTION <nAction> ;
FLAGS <nFlags> => ;
WVW_AppendMenu( <hMenuItem>, <nFlags>, <nAction>, <cPrompt> )
...
#define UTIL_DEMO 820
...
...
case nMenuEvent == UTIL_DEMO
PROGBARS() //modulo hwgui (como chamar o módulo a partir daqui com thread() e será que o sistema executará?)
...
SUBMENUITEM hMenuItem PROMPT "~DEMO HWGUI" ACTION UTIL_DEMO FLAGS ( CHKFLAG(.T.))
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
