![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с array of pstrlist [Delphi, Windows]
АртемКо © (2007-10-28 16:11:00)Пишу консольные приложения с использованием KOL, всё нравилось.
Пока не пришлось делать массив списков строк.
Завел переменную _output:array of pstrlist;
В какой-то момент, задал ее длину setlength(_output,N);
Далее в цикле хочу инициализировать список и добавить в него строку
for i:=0 to N-1 do
begin
_output[i]:=New(PStrList);
_output[i].Add(s);
end;
Не добавляет оно строку s, а тупо вылетает с Run Time Error
в asm-процедуре TList.Insert на строке PUSH [EAX].fCount
Если заменить добавление на очистку списка, тоже ошибка, но уже в asm-процедуре TStrList.Delete на строке MOV ECX, [EAX].TList.fItems
Пробовал заменить динамический массив на массив фиксированной длины - вылет наблюдается в другом месте. Но все же наблюдается.
Может быть я что-то конкретно недопонимаю? С простым списком все работает "на ура"..
АртемКо (2007-11-11 19:54:00) [1]Просто меня заглючило. :)
KOL использую недавно. Сначала делал как надо - NewStrList. А тут запутался.
Danger (2007-10-28 18:34:00) [2]
> АртемКо (28.10.07 17:02) [3]
> Ок, спасибо, попробую.
Специально ведь Кладов в уроках и мануале выделяет: используйте специальные функции-конструкторы для всех объектов. Не пользуйтесь New() напрямую ...
АртемКо (2007-10-28 17:02:00) [3]Ок, спасибо, попробую.
Dimaxx (2007-10-28 16:59:00) [4]for i:=0 to N-1 do
begin
_output[i]:=NewStrList;
_output[i].Add(s);
end;
Вячеслав (2007-10-28 16:21:00) [5]Может я и не прав, но...
Есть функция NewStrList, а в ней New( Result, Create);