Misturando LIBs 2024.

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Misturando LIBs 2024.

Mensagem por JoséQuintas »

Os detalhes principais são:

a) LIB GUI costuma paralisar o processo inicial.
Por isso é tão normal travar ao misturar LIBs.
Se precisar, pode renomear o processo pra que isso não aconteça (remover o INIT)
Em multithread acontece o contrário: falta esse processo, precisa chamá-lo
Não é com qualquer LIB que o problema acontece, acho que só GTWVW.

b) LIB GUI costuma forçar a GTGUI em Harbour (e não em xharbour)
Se a mistura até hoje dá trabalho, é por conta das próprias LIBs.

c) Não entendi direito até hoje, só sei que o hb_gtReload("WVG") é suficiente pras LIBs GUI, substituindo a GTGUI

com GTWVG como default.

Código: Selecionar todos

hb_ThreadStart( { || OutroProcesso() } )
hb_ThreadWaitForAll()
Acima, o processo principal vai ficar aguardando que os outros processos terminem.

A partir daí pode ter processos em qualquer LIB, preferencialmente GTWVG criando o processo a ser paralizado.

Outro processo em gtwvg:

Código: Selecionar todos

hb_gtReload( "WVG" )
SetMode(25,80)
CLS
@ 1,0 SAY "teste" GET var
READ
Em HMG:

Código: Selecionar todos

hb_gtReload( "WVG" )
hmg_Init()
//segue fonte HMG
É só isso.
Pode usar no mesmo EXE/Aplicativo GTWVG, HWGUI e HMG Extended.

Detalhe adicional:
HWGUI tem uma função com mesmo nome da HMG.
Se quiser misturar as duas, ou usa BORLAND, ou no MINGW adiciona o parâmetro na linquedição pra permitir nomes duplicados.
Usar MINIGUIs misturadas não dá, quase tudo tem nome repetido.

Misturar HWGUI e HMG é interessante pra quem já usa HWGUI e tem aplicativo grande pra converter.

A partir daí é só se divertir.

NÃO É misturar controles.
Um cadastro de clientes usando GTWVG
Um cadastro de clientes usando HWGUI
Um cadastro de clientes usando HMG Extended

Ótimo pra migração.
Vai poder colocar em prática um módulo novo, sem desativar o velho, ou deixando o velho como reserva.

Ou... também pode ser mais radical:
Cria um EXE com os módulos de uma, cria um EXE com os módulos de outra, e chame passando parâmetros.
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/
SOSSOFT
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 23 Out 2024 10:04

Misturando LIBs 2024.

Mensagem por SOSSOFT »

Interessante esta possibilidade de poder misturar por vários motivos, até para complementar algo que não dá para fazer facilmente em um certo tipo mas que dá certo em outro.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Misturando LIBs 2024.

Mensagem por microvolution »

SOSSOFT escreveu:Interessante esta possibilidade de poder misturar por vários motivos, até para complementar algo que não dá para fazer facilmente em um certo tipo mas que dá certo em outro.
Não lembro exatamente qual "post" que fiz, mas, com a ajuda do Dr.Soto, conseguimos uma HMG 3.0.35.1 onde roda tudo junto: HMG GUI + WVG + CUI/CONSOLE.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Misturando LIBs 2024.

Mensagem por microvolution »

Ironia do destino. Estou aqui novamente, para uma coisa simples. Recompilar meu sistema que já era compilado dentro da IDE/HMG 3.5 usando em "configuration" apenas:

Código: Selecionar todos

libs=HBWIN.HBC gtwvg.hbc hbnf.hbc
Infelizmente, se eu comentar a linha acima, também não compila e mostra uma pancada de "ambiguous ou duplicidade"
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Responder