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
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
Curtidas 0
Respostas
Ermindo
09/03/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;
obs: nao esqueça de dar um application.ProcessMessages; depois do
image1.heigth := image1.heigth + 2;
GOSTEI 0
Adriano Santos
09/03/2006
Talvez usar um Update também ajude.
FormX.Update;
ou somente
Update;
FormX.Update;
ou somente
Update;
GOSTEI 0
Martins
09/03/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!:
Se a imagem foi desenhada no Form com canvas ou algo assim.
Boa sorte companheiro.
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.
GOSTEI 0
Valdirdill
09/03/2006
[quote=´Martins´]Galera, posso meter minha colher?
Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.
Image1.DoubleBuffered:=true;
Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.
GOSTEI 0
Martins
09/03/2006
[quote:8acad15ef6=´Martins´]Galera, posso meter minha colher?
Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.
Image1.DoubleBuffered:=true;
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!!
GOSTEI 0
Valdirdill
09/03/2006
[quote:d04d07a2ca=´valdirdill´][quote:d04d07a2ca=´Martins´]Galera, posso meter minha colher?
Acho que o componente TImage não tem essa propriedade DoubleBuffered.
Image1.DoubleBuffered:=true não dá certo.
Image1.DoubleBuffered:=true;
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.
GOSTEI 0
Aroldo Zanela
09/03/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.
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.
GOSTEI 0
Martins
09/03/2006
[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.
Valew!!!
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!!!
GOSTEI 0
Vitor Rubio
09/03/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.
não existe um triplebuffered?
meu problema é ao arrastar um timage por cima de outro, dá flick.
GOSTEI 0