Показать сообщение отдельно
  #1  
Старый 08.10.2012, 22:22
bfrogg bfrogg вне форума
Прохожий
 
Регистрация: 08.10.2012
Сообщения: 2
Репутация: 10
По умолчанию Динамический массив из записей

Здравствуйте, помогите понять в чем проблема.

Создаю динамический массив из записей вида
Код:
type
  TPipe = record
    x, y: integer;
    concentration: real;
  end;

Объявляю его в var
Код:
var
  Form2: TForm2;
  i: integer;
  pipe: array of Tpipe;

Далее я инициализирую массив при открытии формы. N переходит из предыдущей формы и вводится пользователем.

Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
  i:= 0;
  SetLength(pipe, Form1.n);
end;

Хочу сделать, чтобы при нажатии на кнопку поля x и y i-того элемента массива заполнялись значениями из edit1 и edit2.

Код:
procedure TForm2.btn1Click(Sender: TObject);
begin
  if i <= Form1.n - 1
    then
      begin
        pipe[i].x:= StrToInt(edit1.Text);
        pipe[i].y:= StrToInt(edit2.Text);
        i:= i + 1;
      end
    else
      begin
        Form3.Show;
        Form2.Hide;
      end;
end;

Программа компилируется, но при попытке присвоить значение полю x,
вылезает ошибка "pipe[i].x = Inaccessible value"
Не получается даже просто присвоить полю какую либо константу.
Ответить с цитированием