Вот тут есть готовые примеры, двигаются треугольники!
[ссылка заблокирована по решению администрации проекта]. cyberforum. ru/turbo-pascal/thread56317.html
Вот типа такого:
uses crt,graph;
const n=4;
type
Point=record
x,y:integer;
end;
mas=array[1..n] of Point;
procedure Z(x,y:integer;var m:mas;c:byte);
var i:byte;
begin
Setcolor(c);
m[1].x:=x;m[1].y:=y;
m[2].x:=x;m[2].y:=y+90;
m[3].x:=x+90;m[3].y:=y+90;
m[4].x:=x;m[4].y:=y;
moveto(m[1].x,m[1].y);
for i:=1 to n do
lineto(m.x,m.y);
Setfillstyle(1,c);
end;
var gd,gm:integer;
x,y,x1,y1,i:integer;
p:mas;
c1,c2:byte;
k:char;
move:boolean;
begin
gd:=VGA;
gm:=VGAHi;
Initgraph(gd,gm,'..\bgi');
Setbkcolor(8);
x:=10;y:=10;
c1:=7;c2:=8;
move:=true;
repeat
if keypressed then
begin
k:=readkey;
if k=#13 then {if enter}
for i:=1 to 10 do
begin
y1:=y;
x1:=x;
y:=y+1;
x:=x+1;
delay(6000);
Z(x1,y1,p,c2);
Z(x,y,p,c1);
move:=true;
end;
end;
if move then
begin
Z(x1,y1,p,c2);
Z(x,y,p,c1);
move:=false;
end;
OutTextXY(320,240,'Press Enter to continue');
until k=#27; {until escape}
closegraph;
end.