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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 11:33   #1
flug
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 48
По умолчанию Массив из record

Пытаюсь сделать массив из record, но что-то явно не так делаю, так как при нажатии на Button1 появляется сообщение Acsess Violation:
Вот кусочек моего кода:
Код:
type TDataList = Record
    Name : string;
    SubData  : string;
    Nik  : string;
  end;

var
  Form1: TForm1;
  DList : array of TDataList;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  DList[0].Name:='Вася';
  DList[0].SubData:='неизвестно';
  DList[0].Nik:='хряк';
end;
flug вне форума Ответить с цитированием
Старый 20.04.2010, 11:57   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

массив динамический, ему надо задать размер
пример
Код:
setlength(DList,1)
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 20.04.2010, 11:58   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот это - DList : array of TDataList; - есть описание динамического массива... Прежде чем с ним работать, его нужно создать, т.е. задать размерность SetLength(DList,"Size"); а уж потом работать с ним. Отсюда и шибка доступа к несуществующему элементу массива Acsess violation
Немного опоздал, однако...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 20.04.2010, 11:59   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...массив-то динамический и пока-что не задан setlength
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 20.04.2010, 12:01   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Перед Васей надо размер динамического массива установить: SetLength(DList, 1).
Крайне желательно в записи ограничивать длину строк, например, Name : string[15]; - это на будущее, вдруг захочется сохранять в файл.

P.S. Пока писал, все опередили
eoln вне форума Ответить с цитированием
Старый 20.04.2010, 12:43   #6
flug
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 48
По умолчанию

Всeм огромноe спaсибо! Всeм нaжaл нa вeсы.
flug вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Record / Packed Record Alex Cones Общие вопросы Delphi 7 11.11.2009 10:43
my Record subsonic Общие вопросы Delphi 5 09.02.2009 15:20
Задачв на RECORD n1ce > Kuzia Паскаль, Turbo Pascal, PascalABC.NET 6 28.01.2009 19:44
record/file potion Паскаль, Turbo Pascal, PascalABC.NET 3 10.05.2008 20:15