Página 1 de 1

Xharbour+GtWvW arrastar a janela apaga a debaixo ??

Enviado: 25 Set 2007 01:18
por Cezar
Boa noite,

Estou usando WvW_MainCoord(.F.), isso quer dizer que cada janela tem
as suas proprias coordenadas.

Tenho uma janela aberta, nela um browse com grids, as linhas que
separam colunas e linhas.

Abro uma segunda janela menor, para fazer atualizacoes; inclusao,
alteracao, etc..

1.) problema
Se eu arrastar esta segunda janela pela tela, ela apagara o grid e todos
outros tipos de objetos desenhados.

2.) problema
Se mandar centralizar WvW_CenterWindow(), ela centralizara mas
apagara o que tiver em baixo, como no exemplo anterior, das
coordenadas iniciais ate centro.

Verifiquei que no WvWTools tb acontece isso, estou usando VM_SIZE
mas nao resolve.

Voces ja observarao isso???
Se tiverem alguma sugestao fico grato.

cez_a@ubbi.com.br

Enviado: 25 Set 2007 15:12
por sygecom
Não toh usando a gtwvw nem a wvwtools, mas veja que no sample da gtwvw wvwtest9.exe ele não acontece isso !!! boa sorte !!!

Enviado: 25 Set 2007 18:05
por Cezar
Ola,

Ja converti um sistema grande baseado nos exemplos que me falou e nos exemplos CXWIN do Angeiras.

Mas estou com os problemas acima, me parece o conceito de WvW_MainCoord(.F.) nao esta Ok na GtWvW.


Grato.
cez_a@ubbi.com.br

Enviado: 25 Set 2007 18:08
por Luciano Bonfim
Comigo acontece algo semelhante, eu tenho uma imagem como fundo de tela, e qaundo eu arrasto a minha tela para fora do limite do monitor a parte da figura que fica para fora da tela fica preta...

estou usando GTWVW porem uso WvW_MainCoord(.t.)

Enviado: 26 Set 2007 09:03
por angeiras
Ola,

Qualquer elemento grafico que for desenhado na tela, sera necessario informar a gtwvw para redesenho atraves da funcao wvw_paint(). Voce pode usar, por ex., as funcoes

Código: Selecionar todos

****************************************
FUNCTION fAddObjects( nWindow, bAction )
****************************************
   aadd( p_aListObjects[ nWindow+1 ], bAction )
RETURN .T.

*********************************
FUNCTION fResetObjects( nWindow )
*********************************
   while len( p_aListObjects ) < nWindow+1
      aadd( p_aListObjects, {} )
   enddo
   p_aListObjects[ nWindow+1 ] := {}
RETURN .T.

*****************************
FUNCTION WVW_Paint( nWindow )
*****************************
   if len( p_aListObjects ) >= nWindow+1
      aeval( p_aListObjects[nWindow+1], {|e| eval( e, nWindow )} )
   endif
RETURN 0
Quando quiser incluir um objeto, use fAddObjects() e a gtwvw vai automaticamente redesenha-lo.
Para limpar todos os objetos na lista, use fResetObjects().

[]s
Manoel Angeiras

Enviado: 26 Set 2007 11:07
por Cezar
Bom dia,

Estou fazendo como sugeriu o Angeiras, no caso a tela menor que esta em cima, quando arrasto ( como de fosse uma borracha ), apaga os grids e objetos da tela que esta em baixo.

Mesmo usando WvW_MainCoord(.F.), minimizando ou arrastando, executa automaticamente o WvW_Paint(), é as funcoes sao executadas, a cada movimento:

o problema é executar as funcoes de pintar novamente nas telas debaixo??

Talvez esteja fazendo alguma coisa fora de logica??
Vamos continuar pesquisando, se alguem tiver sugestoes agradeço.

cez_a@ubbi.com.br