Animar

Delphi

14/10/2004

Tenho um form com um image, que é maior que o form, e um timer, o form está com a opção autoscroll=false, no timer coloquei o seguinte código:

var
c, x, y : integer;
begin
For C := 0 to 50 Do
Begin
image1.top := c;
sleep(10)
End;

end;

O problema é o seguinte, a movimentação da imagem não está obdecendo o tempo do interval do timer e o contador do for.
Eu quero que a imagem se movimente devagar conforme o for, mais ele incrementa o contador 50 de uma vez, aí não dá para ver a animação.

Ricado


Zlink

Zlink

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

14/10/2004

vc deveria colocar só isso no timer:

image1.top := image1.top  + 1;
if image1.top  >= 50 then
  Timer.Enabled := False;


e p/ disparar:

image1.top := 0;
Timer.Enabled := True;


e vc altera a propriedade Interval do timer p/ aumentar/diminuir a velocidade.

pode mudar a propriedade DoubleBuffered do form ou componente aonde o Image estiver dentro no OnCreate do Form para que não fique piscando.

DoubleBuffered := true;



GOSTEI 0
Ertai

Ertai

14/10/2004

depois de mover a imagem use um

application.processemessage;


GOSTEI 0
POSTAR