Página 3 de 10

"Começando" com GUI

Enviado: 02 Mar 2018 18:49
por JoséQuintas
Mas provavelmente o problema é só esse.
Ao usar uma janela MAIN da HMG, ao fechar a janela também fechou o aplicativo, o que deixou a GTWVG perdida sem retorno.
Usar MAIN OFF deve resolver o problema, pelo menos do travamento.

Mas vai devagar, primeiro uns testes simples, antes de colocar oficialmente no aplicativo.
E depois que funcionar, continue fazendo mais testes, pra ter certeza de que vai estar funcionando do jeito que deve.
Pode acontecer de funcionar em uma situação e em outra não, já que se trata de GUI, várias rotinas rodando ao mesmo tempo, sem um ponto exato de entrada e/ou saída do módulo/janela.

"Começando" com GUI

Enviado: 02 Mar 2018 21:38
por microvolution
MSDN escreveu:A solução para o seu problema já estava feita, como fui eu quem fez essa tela e essa rotina
sim... claro e obrigado.
o detalhe, não está no setproperty...
parece q ao fechar o form, as libs não se comunicam.
então, o GET (que é 100% harbour) não recebe da FORM_HMG que acabou de fechar o valor que a função repassa.

Ou teremos que tentar outra solução, ou, fazer tudo em GTWVG, ou tudo 100% harbour, ou tudo HMG 100% GUI...

Pelo que entendi do exemplo do Quintas usando HARBOUR (CONSOLE) + pesquisa em (HWGUI ou HMG-E) o valor foi retornado.
Vamos tentando aqui achar o erro...
vlw!

"Começando" com GUI

Enviado: 03 Mar 2018 15:45
por microvolution
JoséQuintas escreveu:Ao usar uma janela MAIN da HMG, ao fechar a janela também fechou o aplicativo, o que deixou a GTWVG perdida sem retorno.
como eu disse, fiz um teste aqui usando o tradicional TBROWSEDB.

Percebo então 2 situações (USANDO APENAS HAROUR 3.2 + GTWVG):

- 1 ) se usar o TBROWSE em 100% console, apesar da tela ficar muito estranha pois os gráficos ficam embolados junto com a tela que chamou - no caso a main que usa os DRAWs da GTWVG, mas, assim que pressionamos ENTER essa tela (toda mistura) encerra e o GET recebe o código que a gente realmente precisa;
- 2 ) se eu acrescenter o WVGCRT pra separar as telas - só isso, já faz com que ao pressionar o ENTER o objeto TBROWSEDB não retorna para o GET com os valores.

O que concluo:
- a ) se fizer uma tela principal em gráficos da GTWVG que chama a pesquisa feita em HMG, ao fechar o form não temo como repassar para o GET pelo SETPROPERTY, pois a função SETPROPERTY pelo que eu saiba é exclusiva da HMG e na GTWVG não há formulários declarados;
- b ) se eu fizer a tela em GTWVG e chamar um simples TBROWSEDB comum, funciona e repassa de volta as informações para o GET. Mas, a tela fica embolada, por misturar gráficos da GTWVG com CONSOLE. E, pelo que sabemos, os gráficos tem prioridade após desenhados;
- c ) se fizer a alteração na pesquisa usando o objeto WVGCRT() a tela não mais embola, mas, ao der o ENTER a informação não volta para o GET.

Como compilo de dentro da IDE/HMG 3.4.4 que tem na contrib\gtwvg e não possui nativamente a HWGUI, pra fazer o teste do Jquintas, não realmente o que fazer.

O que sei, e, que tento sempre dizer, que o sistema está funcionando do jeito que está, mas, aos poucos preciso ir acrescentando os gráficos e isso já temos feito.

Agora a tela PDV gentilmente oferecida pra todos nós pelo MSDN, pra funcionar no meu caso, eu preciso de estar com tudo 100% em HMG, pois o SETPROPERTY() não transfere para GTWVG.

vou continuar aqui "googlequizando" pra ver se encontro e, outros que estiverem essa mesma dúvida/curiosidade possam ser beneficiados, para o bem comum de nossa linguagem que já deu um passo ao sair do 16b vindo para 32b e 64b.


Abraços!

"Começando" com GUI

Enviado: 03 Mar 2018 20:26
por JoséQuintas
parece q ao fechar o form, as libs não se comunicam.
E porque elas teriam que se comunicar?

Console é console, GUI é GUI, mas.... Harbour é Harbour !!!

Já tentou ChamarRotina( @Variável ) ?

"Começando" com GUI

Enviado: 03 Mar 2018 20:31
por JoséQuintas
Mas pera aí....
Se não me engano, no post tem rotina em HWGUI e em HMG.
Provavelmente na rotina em HMG tem o que usei.

"Começando" com GUI

Enviado: 03 Mar 2018 22:48
por microvolution
JoséQuintas escreveu:Se não me engano, no post tem rotina em HWGUI e em HMG.
sim HWGUI e não HMG, mas, sim HMG-E, pois lá tem um #include "super.ch" q não existe na HMG-3.

Mas, vc me despertou uma ideia, vou tentar usar o seu código, e, adaptá-lo à HMG e posto aqui o resultado pra compartilhar com todos.
JoséQuintas escreveu:Já tentou ChamarRotina( @Variável )
sim e não.
Mas, vou usar de um jeito aqui diferente, pois já q vc me "abriu" um leque dizendo que:
- GUI x GUI se comunicam;
- CONSOLE x CONSOLE se comunicam;
- CONSOLE x GUI não se comunicam;
- GUI x CONSOLE não se comunicam;
mas,
- HARBOUR x HARBOUR se comunicam.

Então, vou pensar numa forma em que a variável seja preenchida... vou testar...

"Começando" com GUI

Enviado: 03 Mar 2018 23:08
por microvolution
agora no DEMOWVG (vouch) tem dentro de si um exemplo do _TBROWSE.PRG, mas, achei muito complexo e nele não tem nenhum ENTER ou CLIQUE DUPLO para pegar o valor e devolver para o DEMOWVG.
Tentei adaptar mas achei muito complexo o entendimento.
Vou continuar aqui tentando possibilidades e "jogar pedra em avião", quem sabe rsrsrsrsrs... só pra descontrair...

"Começando" com GUI

Enviado: 04 Mar 2018 00:37
por JoséQuintas
agora no DEMOWVG (vouch) tem dentro de si um exemplo do _TBROWSE.PRG, mas, achei muito complexo
É que ele é... GUI !!!
É pra ser usado como controle dentro de uma janela DIALOG.

Veja aqui a janela DIALOG com dois tbrowse e outras coisas mais.

Ou o mais interessante: é um controle de usuário desenvolvido em Harbour !!
tbrowsewvg.png

"Começando" com GUI

Enviado: 04 Mar 2018 00:46
por microvolution
e agora piorou mais ainda o puro código harbour + gtwvg pois o Viktor parece que mudou para "homebrew" e deixou de vez o harbour.

"Começando" com GUI

Enviado: 04 Mar 2018 01:44
por microvolution
bom voltando aqui nos testes da GTWVG ...

Código: Selecionar todos

				oCrt:Destroy()
				WvtSetPaint( aPnt )
No caso do TBROWSEDB com uso da WVGCRT, se colocarmos as linhas para encerramento da janela MODAL, os dados são perdidos.
Então, temporaria e provisoriamente, acrescentei uma linha antes das 2 linhas acima para passar ao GET o valor da variável (que já é PRIVATE no módulo), ficando as 3 linhas assim:

Código: Selecionar todos

mCDPRODUTO:=VALOR
oCrt:Destroy()
WvtSetPaint( aPnt )
É uma solução, mas, paliativa, pois o correto é da forma anterior. Mas, como a anterior ao usar o DESTROY os valores também se perdem, usarei dessa forma, até encontrar uma solução que liga os dois formulários da GTWVG, os quais são:
- o que cria a tela do PDV e que chama a PESQUISA();
- o da PESQUISA que também é um WVGCRT e que encerra e volta para o PDV.

Abraços!

"Começando" com GUI

Enviado: 04 Mar 2018 02:06
por JoséQuintas
Porque raios quer fazer uma janela GTWVG dentro de outra janela GTWVG? Ainda mais de um browse?

"Começando" com GUI

Enviado: 04 Mar 2018 02:19
por microvolution
JoséQuintas escreveu:Porque raios quer fazer uma janela GTWVG dentro de outra janela GTWVG? Ainda mais de um browse?
porque não sei fazer de outra forma.
Vou jogando pedras, até acertar...
Bom, como diz o título criado por você mesmo "começando com GUI"...
Estou com meu sistema em modo console.
Aí faço uma tela gráfica, seja em HMG ou GTWVG, enfim não importa...
Ela precisa de informações de um .PRG só de rotinas que está em modo CONSOLE.
Então, pra funcionar, preciso ir adaptando cada função de acordo com a necessidade.
Então, o sistema está assim:
- 96% harbor 100% console;
- criando esse novo módulo em HMG (pois tudo que testo na HMG tento fazer na GTWVG), aí fiz essa tela PDV (créditos do MSDN), ela funciona e retorna ao modo CONSOLE (main menu CONSOLE) perfeitamente;
- pra pesquisar o produto, preciso de uma tela também gráfica, senão, as telas ficam emboladas;
- depois que a tela de pesquisa está satisfeita, é necessário retornar à anterior, que nem a gente já fazia em clipper...

poxa, será tão difícil assim em LIB GRÁFICA?
...
vou continuar jogando pedras, até acertar...

"Começando" com GUI

Enviado: 04 Mar 2018 02:22
por microvolution
antes, vou tentar descansar um pouco... 02:22hs hora de Brasília.
fui...
té breve!

"Começando" com GUI

Enviado: 04 Mar 2018 06:39
por MSDN
Primeiro de tudo, faça um curso de lógica de programação, aprenda os conceitos do Harbour, saiba o que está fazendo, da forma como está fazendo, está jogando fora o seu tempo e dos outros, vc não respeita nem vc mesmo.
Já falei antes, e outros programadores tbem, vc não segue a lógica das coisas, atropela regras, quer fazer coisas que não funcionam, colocar uma peça quadrada em um espaço redondo não dá !

"Começando" com GUI

Enviado: 04 Mar 2018 06:39
por MSDN
Primeiro de tudo, faça um curso de lógica de programação, aprenda os conceitos do Harbour, saiba o que está fazendo, da forma como está fazendo, está jogando fora o seu tempo e dos outros, vc não respeita nem vc mesmo.
Já falei antes, e outros programadores tbem, vc não segue a lógica das coisas, atropela regras, quer fazer coisas que não funcionam, colocar uma peça quadrada em um espaço redondo não dá !