Dúvidas com imagem no GTWVG

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

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvidas com imagem no GTWVG

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvidas com imagem no GTWVG

Mensagem 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
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)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvidas com imagem no GTWVG

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvidas com imagem no GTWVG

Mensagem 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
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 do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Dúvidas com imagem no GTWVG

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvidas com imagem no GTWVG

Mensagem 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:
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)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Dúvidas com imagem no GTWVG

Mensagem por porter »

Obrigado Jairo pela atenção, deu certo.
Restaurou perfeitamente a imagem.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Dúvidas com imagem no GTWVG

Mensagem 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
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvidas com imagem no GTWVG

Mensagem 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
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/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvidas com imagem no GTWVG

Mensagem 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.
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)
Responder