Показать сообщение отдельно
  #2  
Старый 09.10.2017, 22:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А чё ты делаешь-то?
опиши лучше словами что надо сделать. а то приведенный код вообще непонятен, а смотреть файлы просто лень.

В принципе, как все это можно делать через таймер.
В таймере ты должен за 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; 

Ну и в принципе надо не забыть стирать за собой старую отрисовку, если это надо.
Ответить с цитированием