09/03/2006

Mostrar Imagem

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


Valdirdill

Respostas

10/03/2006

Ermindo

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;


Responder Citar

10/03/2006

Adriano Santos

Talvez usar um Update também ajude.

FormX.Update;

ou somente

Update;


Responder Citar

10/03/2006

Martins

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!:

Image1.DoubleBuffered:=true;


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

Form1.DouBleBuffered:=true;



Boa sorte companheiro.


Responder Citar

10/03/2006

Valdirdill

[quote=´Martins´]Galera, posso meter minha colher?

Image1.DoubleBuffered:=true;


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


Responder Citar

10/03/2006

Martins

[quote:8acad15ef6=´Martins´]Galera, posso meter minha colher?
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.

  Self.DoubleBuffered := True;


Esse código deve servir para vc.

Qualquer coisa, retorne no fórum.

Boa sorte!!


Responder Citar

10/03/2006

Valdirdill

[quote:d04d07a2ca=´valdirdill´][quote:d04d07a2ca=´Martins´]Galera, posso meter minha colher?
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.

  Self.DoubleBuffered := True;


Esse código deve servir para vc.

Qualquer coisa, retorne no fórum.

Boa sorte!![/quote:d04d07a2ca]

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.


Responder Citar

10/03/2006

Aroldo Zanela

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.


Responder Citar

10/03/2006

Martins

[quote:911b24997e=´Aroldo Zanela´]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.[/quote:911b24997e]

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.

Self.DoubleBuffered := True;


Valew!!!


Responder Citar

29/08/2006

Vitor^_^

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.


Responder Citar