Программа не запускается, выдает ошибку. Вот код кнопки, проект прикрепил к теме.
Код:
procedure TL7_Ivanov_Form1.Button2Click(Sender: TObject);
// Оброблювач події ЩИГЛИК на кнопці Button2 (Розрахунок).
var x,y:real;
var TotalCountPoint,i,int,ext:integer;
var N_str:string;
var sFig, error:real;
var s:string;
begin
// Запитуємо кількість точок.
while true do
begin
N_str:=InputBox('','Уведіть кількість точок,'10000');
try
TotalCountPoint:=StrToInt(N_str);
break;
except
ShowMessage('Кількість точок уведена невірно');
end;
end;
// Підготовка циклу. Ініціюємо генератор
// псевдовипадкових чисел за допомогою randomize.
// Якщо цього не зробити, при кожному запуску
// програми буде генеруватися одна й та сама
// послідовність. Очищуємо лічильники точок.
// Очищуємо графік. Установлюємо верхню межу
// смуги прогресу.
randomize;
int:=0;
ext:=0;
Chart1.SeriesList[3].Clear;
ProgressBar1.Max:=TotalCountPoint;
// Цикл
for і:=1 to TotalCountPoint do
begin
// Генеруємо пари випадкових чисел і трактуємо їх
// як координати випадкової точки (числа генеруються
// в межах від 0 до 1).
x:=2*random-1;
y:=2*random-1;
// Перевіряємо, куди потрапляє точка: усередину фігури
// чи поза нею. У залежності від цього вибираємо
// колір точки. Крім того, ведемо окремо підрахунок
// зовнішніх і внутрішніх точок.
if ((y>=0)and(y<=Sqrt(1-Sqr(x)))) or
((y>=-0.5*(x+1)) and (y<0)) then
begin
Chart1.SeriesList.Series[3].
AddXY(x,y,'',clRed);
int:=int+1;
end
else
begin
Chart1.SeriesList.Series[3].
AddXY(x,y,'',clBlue);
ext:=ext+1;
end;
// Через кожні 100 точок викликаємо метод
// ProcessMessages глобального об'єкта Application
// для рисування "накреслених" раніше точок.
// Справа в тому, що ці точки насправді ще
// не накреслені. Вони поки "мертві". "Привести їх
// до життя" саме і покликаний метод ProcessMessages.
// Причому, при цьому буде накреслено відразу 100
// точок одночасно.
if i mod 100 =0 then
begin
ProgressBar1.Position:=i;
Application.ProcessMessages;
end;
end;
// Підбиваємо підсумки і виводимо їх у форму.
// Кількість точок усередині фігури.
Edit1.Text:=InttoStr(int);
// Кількість точок поза фігурою.
Edit3.Text:=InttoStr(ext);
// Визначаємо площу фігури.
sFig:=4*(int/TotalCountPoint;
Str(sf:0:4,s);
Edit2.Text:=s;
// Визначаємо величину помилки.
error:=(abs(((pi/2)+1)-4*(int/TotalCountPoint))/
((pi/2)+1))*100;
Str(error:0:4,s);
Edit4.Text:=s;
end;