Bem, quando eu ainda estava estudando o Pascal, usando o Free Pascal, eu gostava de brincar com os códigos e criei varios "joguinhos" pela própria tela do DOS, utilizando bastante o procedimento delay.
Hoje, ja programando atravez do lazarus, fui tentar criar alguns efeitos para movimento de imagem, fazer tipo um slide... Entretanto não funcionou, pois tanto o sleep como o delay (creio que na verdade sejam a mesma coisa com nome diferente) travaram o programa e só voltaram ao normal depois de ja ter movimentado a imagem, tipo assim, em vez de ela fazer assim:
> (pequena pausa) > (pequena pausa) > (pequena pausa) >
Aconteceu assim:
> (grande pausa) >
Alguém sabe como resolver este problema?
Abaixo irei passar o código para facilitar o entendimento
procedure TFormulario.MoveDown(Movimento: integer);
var
PosAtual: integer;
begin
PosAtual := self.Imagem.Top;
while PosAtual < Movimento do
begin
sleep (10);
PosAtual := PosAtual + 1;
self.Imagem.Top := PosAtual;
end;
end;