Clipper On Line • Ver Tópico - Dúvidas com imagem no GTWVG

Dúvidas com imagem no GTWVG

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Dúvidas com imagem no GTWVG

Mensagempor porter » 04 Mar 2018 20:49

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 ?

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
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvidas com imagem no GTWVG

Mensagempor Jairo Maia » 05 Mar 2018 00:07

Olá Porter,

Teste esse exemplo e veja se ajuda:

Para compilar: Hbmk2 exemplo.prg gtwvg.hbc

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
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Dúvidas com imagem no GTWVG

Mensagempor porter » 05 Mar 2018 09:51

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
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvidas com imagem no GTWVG

Mensagempor Jairo Maia » 05 Mar 2018 10:48

Porter,

Altere SaveScreen() e RestScreen() respectivamente para:
cTela := Wvt_SaveScreen( 0, 0, MaxRow(), MaxCol() )  // salva a tela
Wvt_RestScreen( 0, 0, MaxRow(), MaxCol(), cTela )  // restaura a tela
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Dúvidas com imagem no GTWVG

Mensagempor alaminojunior » 05 Mar 2018 12:11

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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Dúvidas com imagem no GTWVG

Mensagempor JoséQuintas » 05 Mar 2018 13:54

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.
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: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Dúvidas com imagem no GTWVG

Mensagempor JoséQuintas » 05 Mar 2018 13:59

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.
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: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Dúvidas com imagem no GTWVG

Mensagempor Jairo Maia » 05 Mar 2018 14:35

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:
Tela com GTWVG.jpg
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Dúvidas com imagem no GTWVG

Mensagempor porter » 05 Mar 2018 17:26

Obrigado Jairo pela atenção, deu certo.
Restaurou perfeitamente a imagem.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvidas com imagem no GTWVG

Mensagempor alaminojunior » 05 Mar 2018 17:31

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
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Dúvidas com imagem no GTWVG

Mensagempor JoséQuintas » 05 Mar 2018 18:17

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.
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: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Dúvidas com imagem no GTWVG

Mensagempor JoséQuintas » 05 Mar 2018 18:21

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.
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: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Dúvidas com imagem no GTWVG

Mensagempor Jairo Maia » 05 Mar 2018 18:55

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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Dúvidas com imagem no GTWVG

Mensagempor JoséQuintas » 05 Mar 2018 19:23

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
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: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Dúvidas com imagem no GTWVG

Mensagempor Jairo Maia » 06 Mar 2018 00:26

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: http://www.pctoledo.com.br/forum/viewtopic.php?p=89836#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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 3 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