Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2010, 08:40   #1
Alexeytur
Пользователь
 
Аватар для Alexeytur
 
Регистрация: 14.04.2009
Сообщений: 12
Счастье Динамический массив записей

есть тип запись
Код:
type paci = record
f,i,o,adres:string;
rost,ves,davl:real;
end;
также есть две глобальные переменные
Код:
r:array of paci;//массив записей
  c:integer;//переменная для установления размера массива
и процедура при нажатии кнопки, в которой определяется размер массива и в массив вводятся данные из stringgrid
Код:
var i:integer;
begin
c:=strtoint(edit1.Text);
setlength(r,c);
for i:=1 to c do begin
r[i].f:=sg.Cells[i,1];//ошибка
r[i].i:=sg.Cells[i,2];
r[i].o:=sg.Cells[i,3];
r[i].adres:=sg.Cells[i,4];
r[i].rost:=strtofloat(sg.Cells[i,5]);
r[i].ves:=strtofloat(sg.Cells[i,6]);
r[i].davl:=strtofloat(sg.Cells[i,7]);
end;
при первой же попытке присвоения элементу записи из массива записей вылетает ошибка Access Violation.
Не подскажите как сделать работающий динамический массив из записей?
Alexeytur вне форума Ответить с цитированием
Старый 04.03.2010, 08:54   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А в Edit число вводить не пробовали? Это первое.
Второе. Нумерация в динамическом массиве начинается от нуля. Это значит, что у Вас, к примеру, нет элемента r[c], самый крайний будет r[c-1]. А в цикле неизбежно i принимает значение c. Делайте выводы .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.03.2010, 10:10   #3
Alexeytur
Пользователь
 
Аватар для Alexeytur
 
Регистрация: 14.04.2009
Сообщений: 12
По умолчанию

Спасибо за помощь, но настоящая ошибка была в том, что я перепутал индексы в stringgrid и он обращался к несуществующей ячейке.
Alexeytur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический массив!!!! zarinka0992 Помощь студентам 1 11.02.2010 09:06
Динамический массив Ueshua Общие вопросы C/C++ 3 19.12.2009 22:12
Динамический массив Vito89 Помощь студентам 1 20.10.2009 01:55
Динамический массив Vito89 Общие вопросы Delphi 3 20.10.2009 01:20
Динамический массив Ivin Мультимедиа в Delphi 14 27.02.2009 23:22