Página 1 de 2
Dúvidas com imagem no GTWVG
Enviado: 04 Mar 2018 20:49
por porter
Olá pessoal, estou usando essa rotina para mostrar a imagem de um arquivo .jpg na tela principal do sistema,
mas estou com as seguintes dúvidas compilando com
HABOUR 3.2.0(dev) GTWVG:
1-A tela principal do sistema demora para abrir e todas as outras telas chamadas, demoram também por causa dessa imagem
com tamanho de 20 KB.
2-Como faço para a imagem ficar apenas na tela principal do sistema, no caso de imagens, tem como restaurar a tela ?
Código: Selecionar todos
STATIC PROCEDURE IMAGEM
LOCAL aPaint
Wvt_SetGui( .T. )
SetMode( 25, 80 )
SetColor( "N/W" )
aPaint := {}
AAdd( aPaint, { NIL , { || Wvt_DrawImage(21, 1 , 22, 78, "rodape.jpg" ) } , NIL } ) // linha, coluna, linha,coluna
WvtSetPaint( aPaint )
@ 23, 0
* WAIT
RETURN
FUNCTION Wvt_Paint()
WvtPaintObjects()
RETURN NIL
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 00:07
por Jairo Maia
Olá Porter,
Teste esse exemplo e veja se ajuda:
Para compilar: Hbmk2 exemplo.prg gtwvg.hbc
Código: Selecionar todos
Function Main()
SetMode( 25, 85 ) // WideScreen
Wvt_SetFont( "Lucida Console", 30, 14, 0 )
SetColor( "N/W" ) // cor da tela
Clear Screen // pinta a tela
@ 10, 03 Say "Teste de Imagem com GTWVG" // necessário algo ser enviado a tela antes de enviar a imagem
Wvt_DrawBoxRaised( 1, 2, MaxRow()-1, MaxCol()-2 ) // monta um box 3d na tela toda
Wvt_DrawBoxRaised( 21, 3, 22, 81 ) // box 3d da imagem
Wvt_DrawImage(21, 3 , 22, 81, "rodape.jpg" ) // mostra a imagem
Inkey(0)
Return
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 09:51
por porter
Olá Jairo,
Pelos testes que fiz, para restaurar a tela com a imagem, tenho que executar novamente
essa rotina você passou, SAVESCREEN e RESTSCREEN não funcionam ?
Obrigado.
HARBOUR 3.2.0(dev) GTWVG
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 10:48
por Jairo Maia
Porter,
Altere SaveScreen() e RestScreen() respectivamente para:
Código: Selecionar todos
cTela := Wvt_SaveScreen( 0, 0, MaxRow(), MaxCol() ) // salva a tela
Wvt_RestScreen( 0, 0, MaxRow(), MaxCol(), cTela ) // restaura a tela
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 12:11
por alaminojunior
O grande enrosco dessa lib GTWVT/WVG é exatamente esse: os objetos gráficos (imagens, frames, etc ...) não são restaurados com a função restscreen(), e se não houve nenhuma mudança desde o tempo em que usei, a função wvt_restscreen() também não restaura, obrigando a repintura, como o colega já experimentou.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 13:54
por JoséQuintas
Salvar/Restaurar tela não serve.
Isso seria igual um print-screen, mas não vale caso a janela seja redimensionada.
A GTWVG usa o "papel de parede" como sendo a tela console.
Essa área precisa sempre ser redesenhada.
A opção é criar um array com os controles a serem redesenhados, pra ser usado em WVT_Paint().
E ajustar o array conforme o que for necessário pra tela.
A não ser que use menu Windows na GTWVG, e aí a tela toda fica disponível pra uma imagem ou button.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 13:59
por JoséQuintas
Não tinha pensado nisso antes, mas talvez dê pra melhorar usando a Bostaurus da HMG.
Poderia ser usada pra salvar a tela, e restaurar de forma ampliada/reduzida.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 14:35
por Jairo Maia
Olá Pessoal,
Nossa.... Uso GTWVG há uns 4 anos, e é tão simples.... Salvo e restauro tela sem problemas....
NOTA: E tem imagens nelas. Exemplo:
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 17:26
por porter
Obrigado Jairo pela atenção, deu certo.
Restaurou perfeitamente a imagem.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 17:31
por alaminojunior
Restaurou perfeitamente a imagem.
Só para desencargo de consciência ... por favor faça o seguinte teste:
Abra a janela onde exibe a imagem, em seguida minimize esta janela.
Em seguida, restaure a janela e verifique se a imagem permanece.
Era um dos problemas que eu tinha com GTWVT/GTWVG
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 18:17
por JoséQuintas
Era um dos problemas que eu tinha com GTWVT/GTWVG
Isso sempre vai existir. Ou usa componentes GUI, ou tem que fazer seu controle pra ficar redesenhando tudo.
Isso não é exclusividade GTWVG, é um comportamento no Windows: qualquer linguagem de programação que use uma janela pra desenhar vai ter esse mesmo problema.
Ou usa objetos GUI, que são janelas menores sobre a janela normal, ou então vai ter que ficar redesenhando TUDO.
CLS, mover janela, resize, maximizar, minimizar, etc. tudo isso faz tudo sumir, e o Harbour/GT só retorna automaticamente o texto.
Se fizer a mesma coisa no Visual Basic, vai ter o mesmo resultado: as coisas vão sumir.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 18:21
por JoséQuintas
Sobre restaurar a tela:
Tente redimensionar pra ver o que acontece...
Não vai conseguir restaurar nem com reza brava, porque o tamanho não vai mais ser o mesmo.
Só funciona se a janela continuar com exatamente o mesmo tamanho.
Somente o texto pode ser restaurado totalmente, porque o texto SEMPRE vai ser proporcional ao tamanho da janela, então dá pra salvar/restaurar texto sem problemas, como se fosse uma tela console.
Seria o equivalente a, no console, salvar uma tela 25 X 80 e restaurar numa tela 43 x 80, não dá, vai faltar conteúdo.
Com imagem piorou, porque em texto pelo menos dá pra ver letras fora de lugar, mas em imagem.... vai misturar mesmo.
A não ser que deixe sempre o tamanho da janela FIXO, aí sim, dá certo.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 18:55
por Jairo Maia
Olá Pessoal,
JoséQuintas escreveu:Tente redimensionar pra ver o que acontece...
Eu desativo o botão de redimensionamento. Nunca vi necessidade dele, e nunca me pediram. Talvez pela característica do seguimento que o sistema atende: Comércio Varejista (CF-e-SAT) ou Lojas e Atacadista (NF-e).
JoséQuintas escreveu:A não ser que deixe sempre o tamanho da janela FIXO, aí sim, dá certo.
Sim.
Dúvidas com imagem no GTWVG
Enviado: 05 Mar 2018 19:23
por JoséQuintas
No caso dessa sua janela, teria que usar wvt_Paint() e um array contendo as duas imagens de cima, e provavelmente os textos de tamanho diferente.
Ou.... talvez usar aqueles controles que criei pra imagem e texto, que são GUI, mas não tenho certeza porque não uso ainda.... rs
Dúvidas com imagem no GTWVG
Enviado: 06 Mar 2018 00:26
por Jairo Maia
JoséQuintas escreveu:No caso dessa sua janela, teria que usar wvt_Paint()
Para permitir usar o redimensionamento creio que sim, pra recalcular as coordenadas.
Em Julho de 2014, postei nesse tópico:
https://pctoledo.org/forum/viewto ... 836#p89836 um exemplo de como usar a Wvt_Paint(), mas depois que o Viktor Szakats reescreveu a GTWVW, também alterou as funções Wvt_SaveScreen() e Wvt_RestScreen(). Como elas servem também para a GTWVG, hoje mesmo minimizando a janela e depois restaurando não apaga as imagens, quer seja pelo botão superior ou na barra de tarefas.