Суть программы такова, я на пустой форме кликами по левой кнопке мыши (обработчик нажатия этой кнопки) ставлю точки, точки реализуются командой
Canvas.TextOut(X,Y,IntToStr(i+1)+'('+IntToStr(X)+','+IntToStr(Y)+')');
Отображается номер точки, а в скобочках- её координаты. Нужно вычислить расстояние от каждой точки, до первой.
Прежде всего нужно координаты каждой точки записать в массив (тут и проблема). Вот, как я делал: я задал два динамических массива b и c, длину массива задал в процедуре TForm1.FormCreate(Sender: TObject). А сам обработчик нажатия левой кнопки мыши выглядит так:
Canvas.TextOut(X,Y,IntToStr(i+1)+'('+IntToStr(X)+','+IntToStr(Y)+')'); //ставим точки
b[i]:=X; //пишем их в массивы
c[i]:=Y;
i:=i+1; //шаг изменения индекса задаем
SetLength(b,n+1); //увеличиваем длину массива
SetLength(c,n+1);
Начальное значение индекса i я так же задал глобально в процедуре TForm1.FormCreate(Sender: TObject)
Проблема вот в чем: после того, как я ставлю некоторое количество точек, при попытке поставить четвертую программа вылетает с ошибкой "Invalid pointer operation". Эта ошибка возникает не после определенного количества поставленных точек, а непонятно, почему. Но проблема именно с массивом, только я не понимаю, какая.