Página 1 de 1

WVW no Harbour

Enviado: 22 Dez 2009 09:18
por Itamar M. Lins Jr.
Para quem estava querendo mudar do xHb para o Harbour mas estava preso na velha WVW, o momento é esse.
Agora é verificar se vai ficar travando igual está no xHb. Porque no Harbour eles corrigem os erros que a gente encontra.
+ Added rudimentary port of GTWVW to Harbour.
(The source was current xhb CVS repository.)
The port is very very (very) far from anything else
than can be found in Harbour, this port involved making
all the minimum required steps to build and link under
Harbour, plus some extra cleanups.
! Lots of cleanups and fixes.
Saudações,
Itamar M. Lins Jr.

Re: WVW no Harbour

Enviado: 22 Dez 2009 18:07
por sygecom
Isso é muito bom, além do que os ajustes já vão deixando a mesma compatível para MT com Harbour, coisa que no xHarbour dava uns pau meio louco.

Re: WVW no Harbour

Enviado: 23 Dez 2009 10:15
por asimoes
Senhores,

Perguntas:

A WVW está em que pasta? É na contrib?

Ontem eu baixei uma atualização da SVN e não achei a WVW, me desulpem se estiver errado.

Já achei!

[]´s

Re: WVW no Harbour

Enviado: 23 Dez 2009 11:03
por sygecom
\harbour\examples\gtwvw

Re: WVW no Harbour

Enviado: 23 Dez 2009 11:23
por asimoes
sygecom,

É verdade, eu até editei o meu post informando que tinha achado.

Fiz alguns testes e ainda tem algumas coisas a serem resolvidas.

Por exemplo, as funções wvw_drawboxrecessed e wvw_drawboxraised, tinham um problema no xharbour quando a janela era minimizada e maximizada, os boxes sumiam.
Nesta versão da wvw, os box restauram sem problemas, mas não apagam! numa troca de janela, por exemplo se for chamada uma outra rotina, tem alguma outra função que faça isso? tentei savescreen e wvw_savescreen e nada.

[]´s

Re: WVW no Harbour

Enviado: 23 Dez 2009 11:33
por Itamar M. Lins Jr.
Ola!
Nesta versão da wvw, os box restauram sem problemas, mas não apagam! numa troca de janela, por exemplo se for chamada uma outra rotina, tem alguma outra função que faça isso?
Tente criar um pequeno programa demonstrando o problema. Se for um problema mesmo.
Ai, é só postar no forum dos desenvolvedores. Quem sabe eles podem corrigir...

Saudações,
Itamar M. Lins Jr.

Re: WVW no Harbour

Enviado: 23 Dez 2009 12:52
por asimoes
Olá Itamar,

Eu fiz o teste com o fonte maximize.prg que esta na pasta tests

Código: Selecionar todos

procedure updatescr()
local i
   CLS
   wvw_drawboxrecessed(,1,1,maxrow(),maxcol())
   aWin:=SaveScreen(10,2,12,30)
   wvw_drawboxraised(,10,2,12,30)
   @11,03 Say "teste" COLOR "r/w"
   inkey(10) //Espera 10 segundos para restaurar a tela
   RestScreen(10,2,12,30,aWin) //A tela continua com o box drawboxraised
   diminfo()
return

Re: WVW no Harbour

Enviado: 23 Dez 2009 15:06
por frazato
Boa tarde..

Faço uso da Gtwvw a cerca de 2 anos usando o xharbour ( 99.70), só que tambem não utilizo as função de salvar e restaurar telas, para cada tela crio uma janela e depois fecho esta janela.


Procure a funções:
FechaJanela() , AbreJanela().


Usei este exemplo para isso, muito bom!


http://www.4shared.com/file/67802282/31 ... cxwin.html


Frazato

Re: WVW no Harbour

Enviado: 23 Dez 2009 16:14
por marcosgambeta
Pessoal,

Sobre a gtwvw no Harbour, vejam com atenção a entrada no Changelog:

Código: Selecionar todos

    + examples/gtwvw
    ...
    + Added rudimentary port of GTWVW to Harbour.
      (The source was current xhb CVS repository.)
      The port is very very (very) far from anything else
      than can be found in Harbour, this port involved making
      all the minimum required steps to build and link under
      Harbour, plus some extra cleanups.
    ! Lots of cleanups and fixes.
    + Added Harbour make files (both GNU make and hbmk2)
    + Cleaned tests to avoid multiple symbols and much simpler
      interdependencies.
    ! Removed extra test.dbf and what32 dependency.
    ; TOFIX: Due to public symbol collisions, this GTWVW it's
             probably not possible to use it with gtwin lib.
    ; NOTE: GTWVW is limited to non-UNICODE, non-C++, 32-bit
            Windows (no WinCE) builds, and for a clean compiler
            I had to suppress Harbour standard warning levels.
            Anyway, not basic tests program seems to work,
            although I didn't dig into them very deeply.
            We will see if this contrib turns out to be useful
            or not, and we can decide to drop it or maybe
            moving it to contrib once it has been brought up
            to Harbour standards. Although the code is huge,
            so don't expect to happen this very soon.
Notem que ela está na pasta /harbour/examples. É uma adaptação rudimentar do código disponivel no projeto xHarbour. Está bem longe dos projetos da pasta /harbour/contrib, em termos de qualidade do código. Conflita se usada em conjunto com a gtwin. Há muito trabalho pela frente para ela "merecer" ir para a pasta contrib. Pode até ser que isto não ocorra.

Então, torçam para que ela evolua e ganhe qualidade e estabilidade, da mesma forma que o Harbour e os projetos da pasta contrib.

Re: WVW no Harbour

Enviado: 23 Dez 2009 20:17
por alaminojunior
Acredito que ela deva funcionar igual a wvt.
Nesta última, (usando xHarbour) eu coloco os objetos gráficos numa matriz e com uso de uma função auxiliar que vem na pasta contrib, estes objetos permanecem no lugar, inclusive aceitando que telas posteriores sejam salvas e depois restauradas. Simplesmente funciona !

Re: WVW no Harbour

Enviado: 24 Dez 2009 09:11
por Itamar M. Lins Jr.

Código: Selecionar todos

aWin:=SaveScreen(10,2,12,30)
Já testou usando save e restore da WVW ?

Código: Selecionar todos

wvw_save, wvw_rest...
Não uso wvw mas observei nos fontes que existem esses 2 comandos.

Saudações,
Itamar M. Lins Jr.

Re: WVW no Harbour

Enviado: 24 Dez 2009 11:20
por BHS
antes de mais nada um Feliz Natal a todos

vamnos lá,

Colega Alamino, tb uso a wvt com xharbour, porém gostaria somente de colocar o logotipo da empresa bem no centro da tela, mas como vc mencionou agora pouco, conforme minimiza ou sai pra outra tela o logo some.
Vc poderia nos passar um trecho desse código que vc usou, e qual é a função auxiliar é esta que esta na pasta Contrib ?

Obrigado

Re: WVW no Harbour

Enviado: 24 Dez 2009 16:53
por asimoes
Olá Itamar,
Antes de mais nada, Feliz Natal para você e Família.
Itamar M. Lins Jr. escreveu:Não uso wvw mas observei nos fontes que existem esses 2 comandos.
Sim tentei isso e não funcionou, como o código foi portado do xharbour, alguém com certeza irá consertar.

Só acho interessante essas funções de box de alto e baixo relevo, para dar uma impressão legal no visual dos aplicativos.

Quando funcionarem, será uma opção interessante a gtwvw.

[]´s

Re: WVW no Harbour

Enviado: 24 Dez 2009 20:13
por alaminojunior

Código: Selecionar todos

Function Main
private aBlocks:= {}

aAdd( aBlocks, {|| Wvt_DrawBoxRaised( 2, 1, 32, 78 ) } ) 
aAdd( aBlocks, {|| Wvt_DrawBoxRecessed(  3, 31, 22, 77 ) } ) 
aAdd( aBlocks, {|| Wvt_DrawBoxRecessed(  3,  2,  5, 28 ) } )

aLastPaint := WvtSetBlocks( aBlocks )

inkey(0)
return
Como eu havia dito, você guarda tudo o que for gráfico, caixas, imagens, etc ... dentro de uma matriz (aBlocks)
Eu guardo toda a tela inicial do sistema, e as funções WvtSetBlocks e WvtPaint se encarregam do resto.
Um detalhe é que se precisar abrir outra janela por cima, os objetos gráficos estarão lá atrapalhando. Então nesse caso eu guardo o conteúdo da matriz em outra matriz, zero o seu conteúdo, e então eu posso abrir outras janelas e caixas por cima. Terminando eu restauro o conteúdo anterior e pronto, está tudo lá de novo. Pode minimizar, sobrepor programas, etc.

Código: Selecionar todos

FUNCTION Wvt_Paint()
LOCAL aBlocks := WvtSetBlocks()
aEval( aBlocks, {|e| eval( e ) } )
WvtPaintObjects()
RETURN 0

Código: Selecionar todos

FUNCTION WvtSetBlocks( a_ )
LOCAL o
STATIC s := {}
o := aclone( s )
IF a_ != nil
   s := aclone( a_ )
ENDIF
RETURN o