Я задал такую логику работы, что при нажатии на стартовую кнопку переменная n принимает значение true и выполняется цикл программы. А при нажатии кнопки стоп n:=false и цикл должен завершиться. Но при нажатии на стартовую кнопку остальные кнопки становятся некликабельными и панель зависает, а программа продолжает работать в цикле.
Нужна помощь, что исправить в коде
- Код: Выделить всё
- implementation
 
 var
 
 x, y, s, k: integer; i: real;
 
 n:Boolean;
 procedure Form1.start_R_Click(sender: Object; e: EventArgs);//запуск справа
 
 begin
 
 n:=true;
 while n=true do
 begin //начало самой программы
 if n=false then
 begin
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 break;
 end;
 
 repeat
 i := i + pi / 100;
 x := round(100 * (cos(i)));
 y := round(10 * (sin(i)));
 lockdrawing;
 ClearWindow;
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 redraw;
 sleep(s);
 until i >= pi;
 i := 0;
 repeat
 i := i + pi / 100;
 x := round(100 * (-cos(i)));
 y := round(10 * (sin(i)));
 lockdrawing;
 ClearWindow;
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 redraw;
 sleep(s);
 until i >= pi;
 if i >= pi then i := 0;
 end; //конец программы
 end;
 
 procedure Form1.start_L_Click(sender: Object; e: EventArgs);//запуск слева
 begin
 n := true;
 while n=true do
 begin //начало самой программы
 if n=false then
 begin
 break;
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 end;
 repeat
 i := i + pi / 100;
 x := round(100 * (-cos(i)));
 y := round(10 * (sin(i)));
 lockdrawing;
 ClearWindow;
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 redraw;
 sleep(s);
 until i >= pi;
 i := 0;
 repeat
 i := i + pi / 100;
 x := round(100 * (cos(i)));
 y := round(10 * (sin(i)));
 lockdrawing;
 ClearWindow;
 line(250, 0, x + 250, y + 250);
 circle(x + 250, y + 250, 50);
 redraw;
 sleep(s);
 until i >= pi;
 if i >= pi then i := 0;
 end; //конец программы
 end;
 
 procedure Form1.stop_Click(sender: Object; e: EventArgs);//кнопка стоп
 
 begin
 n:=false;
 line(250, 0, x + 250, y + 250);//возврат маятника
 circle(x + 250, y + 250, 50);// в начальное положение


