Clipper On Line • Ver Tópico - WVG dentro da HMG limpa gráficos em execeo ao retornar tela

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

GTWVG com API Windows somente no Harbour.
No Harbouir 3.4 está sendo usado pointer, aonde no 3.2 é numérico.

Moderador: Moderadores

 

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor microvolution » 27 Fev 2019 13:53

prezados professores uma ótima tarde!
bem, tenho um código de uma tela CONSOLE com alguns gráficos que ao retornar para a tela do menu principal, tanto o RETSCREEN quanto o wvg_DelPaint() não estão recuperando corretamente os gráficos da tela anterior. Quando se entra no módulo, no meu exemplo: CONDIÇÕES DE PAGAMENTO, gero a tela com o WVGCRT na configuração modal.
Após retorno os gráficos da tela anterior (menu principal - tela padrão) somente todos.
Vejam as imagens:
1) tela principal antes de acionar o módulo CONDIÇÕES DE PAGAMENTO (substituí o @ BOX) pelo: Wvt_DrawBoxRaised(). vejam os desenhos na tela CONSOLE se misturando e encaixando perfeitamente com os gráficos da WVG:
19-0227 - tela menu antes de entrar no módulo.png
MENU CONSOLE + GUI (compilando de dentro da IDE HMG 3.4.4 com alguns recursos gráficos da WVG)

2) janela modal do módulo CONDIÇÕES DE PAGAMENTO, incluindo botões da WVG (WvgPushButton):
19-0227 - tela dentro do módulo.png
Tela Modal do WVGCRT com botões wvgpushbutton

3) após o retorno ao menu principal, tudo está sendo limpo de forma incoerente:
19-0227 - tela do menu após retorno.png
tela principal após retorno. que bagunça. só aparecem as opções do menu se eu navegar para a esquerda/direita. aí volta tudo ao normal, exceto as bordas das opções do menu que são desenhadas pelo wvt_drawboxraised e que não voltam enquanto não for dado um ESC ou seta para a direita/esquerda que vai sendo repintado novamente.
19-0227 - tela do menu após retorno.png (9.11 KiB) Visualizado 4904 vezes

Bom, a parte do meu código que retorna ao MENU PRINCIPAL é:
   if oCrt_TELA_PADRAO <> nil
      oCrt_TELA_PADRAO:Destroy() // aqui uso para destruir a tela criada pelo WVGCRT.
   endif
   wvg_DelPaint()   // esta é a linha q apaga toda o gráfico q existir da WVG. parece ser semelhante à debaixo
   // Wvg_ClearGUIObjects ()   // esta é uma linha alternativa q apaga toda o gráfico q existir da WVG, havia incluído-a para substituir a linha cima
close all
set (_SET_CURSOR,SALVA_CURSOR)
set (_SET_DELIMITERS,SALVA_DELIMITERS)
set (_SET_INTENSITY,SALVA_INTENSITY)
setcolor (SALVA_COR)
restscreen (0,0,maxrow (),maxcol (),SALVA_TELA) // se eu tirar esta linha não faz diferença alguma
return nil

Se eu usar o wvg_DelPaint() ou Wvg_ClearGUIObjects () o efeito é o mesmo. Se eu não usar nenhum dos 2 o efeito é o mesmo.

Alguns dos nobres professores tem uma dica para que funcione corretamente?

ps: compilo meu programa com o uso da IDE HMG 3.4.4, com as seguintes características:
1) #require "gtwvg"
2) ANNOUNCE HB_GT_SYS
REQUEST HB_GT_WVG_DEFAULT
REQUEST HB_GT_WIN
REQUEST HB_GT_WVT
REQUEST HB_GT_WVG
3) uso apenas WVGCRT, PUSHBUTTON e Wvt_DrawBoxRaised dependendo do caso, apenas um ou todos juntos
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor microvolution » 27 Fev 2019 14:01

Ah! já ia me esquecendo de me explicar antes que alguém me interprete mau:
Como não sabia em qual local melhor seria para criação deste tópico, se é em MINIGUI ou aqui em OUTRAS BIBLIOTECAS VISUAIS E IDES, criei um outro tópico lá no fórum MINIGUI que é direcionado para cá, ou vice-versa.
O link é: http://www.pctoledo.com.br/forum/viewtopic.php?f=45&t=19879

Aos Moderadores:
Me perdoem a ignorância, mas, relevem, pois sou ainda criança e estou em aprendizado.
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 15:51

Hummmm. talvez tenha que acionar multithread, mas vamos a parte teórica primeiro.

Usa wvgCrt(), usa wvgPushbutton(), esses de certa forma são GUI.

Usa wvt_DrawBoxRaised().... sinceramente.... muito trabalho pra pouca coisa, mas vamos lá...
Esse comando desenha na janela, só isso. Se minimizar/maximizar, tchau desenho... a "repintagem" não é automática.
Para esse, a saída seria usar o wvt_Paint(), tipo... ter um array em wvt_Paint() com todos os comandos de "pintura", e acrescentar o comando wvt_DrawBoxRaised() a esse array. Quem vai desenhar é a wvt_Paint(), e não seu fonte normal. Porque vai ficar repintando sempre que necessário.

Se, e somente se, a HMG atrapalhar essa "repintagem", aí sim, ativa a multithread, confirma como é nessa HMG.
Pode ser.... vai ter que confirmar.... pode ser que ao entrar a HMG, ela interrompe essa repintagem, então a multithread resolveria a questão.
mas pode ser a falta dos comandos em wvt_Paint() mesmo.
Se já usava isso antes, só confirmar nos fontes anteriores, em algum lugar deve existir o wvt_Paint() e o array, só fazer igual.

controles wvg: são auto-funcionais, são GUI, são janelas, o Windows cuida dessas janelas pra repintar.
controles wvt: são manuais e não são repintados. tem que usar o wvt_Paint() e montar a rotina de ficar repintando.
mistura de libs: se uma lib atrapalhar a outra, mulithread pode resolver, mas confirme se precisa algum comando a mais na HMG. E convém destacar que o recurso de multithread em HMG é dos últimos anos, não serve versão antiga da HMG.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor microvolution » 27 Fev 2019 17:33

JoséQuintas escreveu:Usa wvt_DrawBoxRaised().... sinceramente.... muito trabalho pra pouca coisa, mas vamos lá...
traduzindo: melhor manter o @box mesmo rsrsrrs, pois o wvt_paint faz o sistema ficar lento, né?
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 18:14

microvolution escreveu:traduzindo: melhor manter o @box mesmo rsrsrrs, pois o wvt_paint faz o sistema ficar lento, né?


Até tem a opção daqueles controles que criei, que são GUI.
Deve avaliar se vale a pena, se o resultado visual é tão bom que justifique complicar o fonte.
De repente, melhor fazer com @ BOX ou @ TO, e usar uma cor mais discreta ao invés do branco.
Faço isso no browse, assim fica com os traços discretos, sem chamar muita atenção, mas existindo os traços.
Provavelmente foi até o que te chamou a atenção nele, ficou mais discreto que o @ BOX.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 18:20

Não parece, mas usar os traços em azul deixaram a tela mais leve/elegante do que antes com tudo branco.
Quando o Viktor voltar, verificar se ele pode implementar esse recurso no browse oficial.
Por enquanto só eu mesmo... rs

browse.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 19:01

O original...

browse2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 19:33

Então... Microevolution.

De repente está usando essas barras brancas, e deixando mais suaves sua tela fica melhor
É diferente programar e usar.
Você pode fazer um carnaval no aplicativo, pra voce que olha de vez em quando tá bom.
Mas que quem usa o dia inteiro, aquilo parece uma poluição só.

Coloquei até outro dia em um post....
O que o usuário quer? quer que o programa fique mais "humano".
apontar com o dedo e/ou mouse, clicar, girar rodinha de mouse, etc.
A parte gráfica... ele até dispensa, exceto pra botões por exemplo, pra indicar direito aonde pode clicar.

Se fizer um aplicativo super-colorido... é uma droga, aonde tem muita coisa em destaque, nada se destaca.

O Windows demorou, mas o Windows 10 mostra bem isso, parece uma tela console.....
- Uma coisa de cada vez (no ambiente metro), fim das janelas
- Tudo preto por default, quase só preto e branco, o mínimo de colorido

Então... o padrão atual é tudo preto... e você se matando pra criar um fundo branco/cinza com gtwvg, que não se usa há muitos anos - isso era o padrão do Visual Basic 6, de 20 anos atrás.

Tá entendendo....
Pra quem programa com Clipper, texto, preto e branco, sei lá... pode achar legal qualquer coisa gráfica.
Pra quem trabalha com parte gráfica, vê que está usando coisa de 20 anos atrás.

Escolhendo bem as cores, e poucos recursos gráficos, vai chamar a atenção com suas telas, mesmo parecendo console.
Já enchendo de recursos, mas no estilo de 20 anos atrás, Windows 98. vão achar que o aplicativo está andando pra trás.
E o pior... você se matando pra fazer aquilo funcionar.

O problema não é GTWVG. Ela dá recursos, muitos legais, muitos nem tanto.

Sinceramente....
Tente olhar pra esta tela de outra forma.
Não parece uma tela GTWVG console, fundo preto, com pushbuttons?
É a tela atual do Windows 10.

w10.png


outra

w10b.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 19:46

Mais uma

w10c.png


Lamento informar mas muitas cores e janelas, já era.
A Microsoft deve ter copiado as telas do meu aplicativo GTWVG
Até as barras mais discretas, que mencionei anteriormente
Meu aplicativo tá moderno e eu nem tinha reparado.... kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 27 Fev 2019 20:08

Veja, justamente por ter pouca coisa gráfica, a parte gráfica se destaca.
Se colocasse aquele fundo cinza aí, ficaria com cara de Windows 98, aparência velha e feia.
Dá até um toque diferente de tudo que existe.
Se comparar com as telas do W10.... até que está na moda.... rs

telawvg.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor microvolution » 28 Fev 2019 08:09

é olhando por este prisma, você está certo, pois até a Microsoft resolveu tirar os gráficos. rsrsrsrs
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor microvolution » 28 Fev 2019 08:10

o Windows10 tá uma cara de servidor Linux rsrs
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: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 28 Fev 2019 19:20

Pera lá.... me apressei em responder.
Tá falando disto?

tela1.png


tela2.png
tela2.png (9.11 KiB) Visualizado 4813 vezes


O gráfico é só o carrinho, e tá sumindo tudo que nem é gráfico?
É isso?

Tudo bem que gosta muito de Harbour, mas precisa exagerar tanto em fonte?
Talvez o problema seja fonte demais, acaba não enxergando aonde está o problema.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 28 Fev 2019 19:31

Consegue criar um modelo isolado com esse problema?
Tipo, um fonte, ou um conjunto de fontes, onde aconteça esse problema?

Além disso, lembrei do antigo problema com programa de banco, que causa algo parecido.

E além disso, uso só com multithread, então pode ser algum problema que não tive por não usar normal, e não conheça.

Se puder enviar esse mini projeto, posso fazer testes pra confirmar aqui.

De repente estou imaginando uma coisa e é outra.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

WVG dentro da HMG limpa gráficos em execeo ao retornar tela

Mensagempor JoséQuintas » 28 Fev 2019 19:54

Um chute, faltou salvar/restaurar tela, como início do problema.

wvg.png


E depois...
uma lista dos controles wvg
uma lista do que é desenhado por wvt_
pra salvar/restaurar controles ou hide/show controles

Ao invés de esparramar nos fontes......
o menu é responsável por ele mesmo, não tem ficar colocando em sub-telas pra salvar/restaurar
assim o menu sabe exatamente o que manda para os módulos, e pode restaurar o que estava antes.

e a sub-tela vai ser responsável por ela, e assim sucessivamente.

Senão, nunca sabe aonde está devolvendo a tela original, e pode não encontrar o problema nunca.

E sempre usando variáveis locais, senão um módulo interfere no outro, isso já é tradicional, não importa se é tela gráfica ou não.

Seria diferente se fosse somente console....
Em console, um módulo pode salvar a tela e devolver no final.
Mas isso pode não dar certo quando entra gráfico, porque o módulo não vai saber que gráficos tinha na tela anterior.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para GTWVG

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro