begin
Gd := Detect;
InitGraph (Gd, Gm, '');
If GraphResult <> grOk then halt(1);

repeat
settextStyle(4,0,6);
{вызываем ф-ю меню}
Choise := Menu ('INFO'#13'Ypravlenie'#13'Moving Balls'#13'Exit');
case Choise of
{выбираем нужный пункт}
0 :
{попадаем в INFO}
{здесь вывожу нужные надписи}

1: {здесь тоже надписи}

2: {попадаем в MOVING CIRCLES}
begin

{...}
{выбираем радиус шаров нажатием 1 или 2}
Menu1(x_,y_,x__,y__,'R=15',13);
Menu1(x_+150,y_,x__+150,y__,'R=25',13);
outtextxY(x_-10, y_-20, '1:');
outtextxY(x_+140, y_-20, '2:');
OutTextXy (getmaxx div 2, getmaxy div 4 - h, 'Zadaite radiys nashatiem nyshogo 4isla:' );

q:=readkey;
_case_(x_,y_,x__,y__, q, r);

{пока не выполнится #c = 27 – двигаем шарики}
repeat
begin
draw (x1, y1, r, 7);
draw (x2, y2, r, 13 );
delay(15100);
escape (x1, y1, r, bgC);
escape (x2, y2, r, bgC);
move (x1, y1, angle1, speed1);
move (x2, y2, angle2, speed2);
border1 (x1, y1, r);
border2 (x2, y2, r);
balls_hit_2;
end;

{управляем с клавиатуры скоростью}
if keypressed then begin
c := readkey;
if c = '+' then
begin
inc(speed1);
if speed1 >= 30 then
speed1 := 30;
end;
if c = '-' then
begin
dec(speed1);
if speed1 <= 1 then
speed1 := 1;
end;
if c = #77
then
begin
inc(speed2);
if speed2 >= 35 then
speed2 := 35;
end;
if c = #75 then
begin
dec(speed2);
if speed2 <= 5 then
speed2 := 5;
end;
end;
until c = #27;
end;

3 : {по выбору этого пункта в меню – выход из основной программы}

until Choise = 3;
readkey;
closegraph;
end.




вот в чём проблема:
в главном меню INFO#13Ypravlenie#13Moving Balls#13'Exit
я выбираю Moving Balls,
после выхожу – попадаю в главное меню, хочу сново выбрать Moving Balls:
выбираю этот пункт ,потом радиус шариков нажатием цифры 1 или 2 и после – шарики появляются на мгновение и всё! дальше сново попадаю в меню!
думаю, что-то не то с циклами… может нужно ещё один или изменять условия в уже сущестыующих?