Array
(
)

Mostrar Imagem

Valdirdill
   - 09 mar 2006

Tenho uma imagem em um form. A altura (heigth) normal desse image é 200. Porém, quando o form ativa, a altura fica em 2 e, com um timer, vou aumentando gradativamente a altura da figura image1.heigth := image1.heigth + 2) para que ela vá aparecendo aos poucos.
Funcionar funciona, mas a cada passada do timer, a imagem faz uma espécie de piscada na tela, ficando ruim para visualização.
Pergunto: há algum outro meio de ir aumentando a imagem gradativamente sem esse inconveniente.

Obrigado


Ermindo
   - 10 mar 2006

olá, vc poderia trabalhar em cima do incremento 2 ou do tempo do timer.

obs: nao esqueça de dar um application.ProcessMessages; depois do
image1.heigth := image1.heigth + 2;


Adriano Santos
   - 10 mar 2006

Talvez usar um Update também ajude.

FormX.Update;

ou somente

Update;


Martins
   - 10 mar 2006

Galera, posso meter minha colher?

Seguinte, sei q todos deram sugestões para resolução do problema e eu serei mais um a dar uma sugestão q pode servir para seu problema, sua imagem está em um TImage?

Muitas vezes colocamos imagens em forms e as mesmas apresentam umas piscadas que nos deixam um pouco irritados, geralmente quando se trabalha com o componente TImage, para evitar essas piscadas, usa-se geralmente o código abaixo abaixo, lembrando que você pode usá-lo no Form também OK!:

#Código


Image1.DoubleBuffered:=true;


Se a imagem foi desenhada no Form com canvas ou algo assim.

#Código

Form1.DouBleBuffered:=true;



Boa sorte companheiro.


Valdirdill
   - 10 mar 2006


Citação:
=´Martins´]Galera, posso meter minha colher?

#Código


Image1.DoubleBuffered:=true;


Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.


Martins
   - 10 mar 2006


Citação:
=´valdirdill´]
Citação:
Galera, posso meter minha colher?

#Código


Image1.DoubleBuffered:=true;


Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.

verdade, perdo-e o engano, então coloque no OnCreate do seu Form.

#Código

Self.DoubleBuffered := True;


Esse código deve servir para vc.

Qualquer coisa, retorne no fórum.

Boa sorte!!


Valdirdill
   - 10 mar 2006


Citação:
=´Martins´]
Citação:

Citação:
Galera, posso meter minha colher?

#Código


Image1.DoubleBuffered:=true;


Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.

verdade, perdo-e o engano, então coloque no OnCreate do seu Form.

#Código

Self.DoubleBuffered := True;


Esse código deve servir para vc.

Qualquer coisa, retorne no fórum.

Boa sorte!!

Obrigado, mas não funcionou. O comando executa, mas a piscada continua. Será que não é poissível fazer isso que eu preciso utilizando o canvas?
Tipo para pintar uma imagem inteira eu uso image1.Canvas.Draw. Será que não tem algo parecido com isso para pintar a imagem aos pedaços?
Obrigado.


Aroldo Zanela
   - 10 mar 2006

Colega,

Com a dica do Martins aqui funcionou sem dar ´flick´. Teste em outra máquina para verificar uma possível insuficiência de placa de vídeo.


Martins
   - 10 mar 2006


Citação:
Colega,

Com a dica do Martins aqui funcionou sem dar ´flick´. Teste em outra máquina para verificar uma possível insuficiência de placa de vídeo.


Pedi para um colega meu testar na máquina dele e ele colocou um TImage q preencheu toda a área livre do form e não teve problemas de flicks depois de usar a linha.

#Código


Self.DoubleBuffered := True;


Valew!!!


Vitor^_^
   - 29 ago 2006

sempre que eu uso doublebuffered, as piscadas diminuem, e ficam mais espaçadas, mas não somem completamente...

não existe um triplebuffered?

meu problema é ao arrastar um timage por cima de outro, dá flick.