![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Возникла проблема. Пишу в коде:
SetLength(Directory[IDToNum(DirID)].Files, 3); writeln('Files: ', length(Directory[IDToNum(DirID)].Files)); Directory[IDToNum(DirID)].Files[1] := TFile.Create(Name); Directory[IDToNum(DirID)].Files[2] := TFile.Create(Name); Directory[IDToNum(DirID)].Files[3] := TFile.Create(Name); Создается массив в 3 элемента, ну все как и должно быть. Пишу код, для добавления 1 элемента в конец массива: SetLength(Directory[IDToNum(DirID)].Files, length(Directory[IDToNum(DirID)].Files) + 1); {увеличиваю размер динамичного массива на 1} writeln('Files: ', length(Directory[IDToNum(DirID)].Files)); {вывод размера массива} n := length(Directory[IDToNum(DirID)].Files); {номер максимального элемента массива} Directory[IDToNum(DirID)].Files[n] := TFile.Create(Name); {создание крайнего элемента массива} Вылетает прога. Обычно такое бывает при обращении к несуществующему элементу массива. Кто поопытнее, может подскажете в чем дело, что я пишу не так? |