Animar
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
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
Curtidas 0
Respostas
Marcelo Saviski
14/10/2004
vc deveria colocar só isso no timer:
e p/ disparar:
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.
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
14/10/2004
depois de mover a imagem use um
application.processemessage;
application.processemessage;
GOSTEI 0