BadGirl, Если я правильно понял суть задачи, то вам должно помочь это:
Code
Program Wind;
Uses
Crt;
Var
xn, xk, yk, yn:Integer;
c: Char; {*}
s: String;
ro, i, code: Integer;
Procedure DrawWindow(n: Byte);
Begin
(* Picyem OKHO *)
Case n of
1: Begin
TextAttr := Yellow + 16 * Black;
xn := 25;
yn := 6;
xk := 75;
yk := 12;
Window(xn, yn, xk, yk);
ClrScr;
Writeln('Variant: ',1);
End;
2: Begin
TextAttr := White + 16 * Blue;
xn:=20;
yn:=9;
xk:=70;
yk:=15;
Window(xn,yn,xk,yk);
ClrScr;
Writeln('Variant: ',2);
End;
3: Begin
TextAttr:=White+16*Red;
xn:=15;
yn:=12;
xk:=65;
yk:=18;
Window(xn,yn,xk,yk);
ClrScr;
Writeln('Variant: ', 3);
End;
End;
End;
Begin
TextBackGround(7);
ClrScr;
s := '123';
Writeln('PRESS ARROW "UP" OR "DOWN" TO START');
Writeln('PRESS "ESC" TO EXIT');
Repeat
c := ReadKey;
Case c of
#72: Begin
s := s + s[1];
Delete(s, 1, 1);
End;
#80: Begin
s := s[3] + s;
Delete(s, 4, 1);
End;
End;
For i := 1 to 3 do
Begin
Val(s[i], ro, code);
DrawWindow(ro);
End;
Until (c = #27);
End.
Надеюсь, я правильно понял. Если будут вопросы - обращайтесь.
P.S. Задачу можно еще больше оптимизировать. =)