Лучше делать примерно так:
Program ball;
var x, y, d, dx, dy: integer;
begin
x:=0; y:=0; d:=10; dx:=3; dy:=3;
repeat
x:=x+dx; y:=y+dy;
if ((x < 0) OR (x > GetWidth - d)) then dx:=-dx;
if ((y < 0) OR (y > GetHeight - d)) then dy:=-dy;
SetColor(255, 255, 255);
FillRect(0, 0, GetWidth, GetHeight);
SetColor(0, 0, 0);
DrawEllipse(x, y, d, d);
Repaint;
Delay(50);
until false;
end.