А чё ты делаешь-то?
опиши лучше словами что надо сделать. а то приведенный код вообще непонятен, а смотреть файлы просто лень.
В принципе, как все это можно делать через таймер.
В таймере ты должен за 1 проход делать 1 шаг.
Пусть у нас есть некоторая процедура, которая отрисовывает нужный объект в переданных координатак (DrawObject) и некоторая функция, которая вычисляет следующее положение объекта (NextStep). тогда код должен выглядеть примерно так:
Код:
type
TForm1 = class(TForm)
...
prvate
x, y, dx, dy : integer; // координаты объекта и шаг их изменения
procedure DrawObject(x,y : integer);
procedure NextStep(var ax,ay : integer; adx, ady : integer);
...
end;
...
// Инициализация при создании формы
procedure TForm1.FormCreate(Sender : TObject);
begin
x := 100;
y := 100;
dx := 1;
dy := 3;
DrawObject(x,y);
end;
// Событие таймера - вычислили новое положение объекта и отрисовали его
procedure TForm1.Timer1Timer(Sender : TObject);
begin
NextStep(x,y,dx,dy);
DrawObject(x,y);
end;
Ну и в принципе надо не забыть стирать за собой старую отрисовку, если это надо.