Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Про динамический массив   Найти похожие ветки 

 
Дмитрий_177   (2005-12-21 12:00) [0]

Есть массив:


Mas: array of TStrings;


Элементы создаются по ходу программы, т.к. колличество элементов в нем не известно, приходится каждыйраз задавать его размер:


SetLength(Mas, Length(Mas) + 1);
Mas[Length(Mas) - 1] := TStringList.Create;


Я не пробовал еще, но надеюсь элементы будут только добавляться... А те элементы которые были останутся без изменения.
А вот как удалить какой-нибудь элемент такого массива? например Mas[10] ?

При завершении программы я удаляю такой массив так: Finalize(Mas); тут тоже у меня небольшой вопросик, при его удалинии в памяти не останутся все элементы массива? т.е. не надо делать так: Mas[i].Free; в цикле?


 
alex_*** ©   (2005-12-21 12:42) [1]

TObjectList не пробовал пользовать? перед разрушением дин. массива надо давать Mas[i].Free; в цикле


 
evvcom ©   (2005-12-21 13:32) [2]

А ты уверен, что тебе нужен массив списков?

> но надеюсь элементы будут только добавляться

Да, так и будет.

> А вот как удалить какой-нибудь элемент такого массива? например
> Mas[10] ?

А тебе обязательно нужно, чтобы не было дыр? Если с дырами, то
Mas[10].Free;
Mas[10] := nil;


 
Дмитрий_177   (2005-12-21 20:27) [3]

Да, чтоб без дыр было...))) Я TObjectList попробую, правда не пользовался им никогда...


 
TUser ©   (2005-12-21 21:07) [4]

Еще можно менять удаляемый элемент местами с последним, удалять его, и потом - SetLength на минус 1.


 
Officeman   (2005-12-21 22:58) [5]

Дмитрий_177, если несекрет.  где может использоватся массив такой структуры? хоть по аналогии скажи.


 
Дмитрий_05   (2005-12-22 20:12) [6]

Долго объяснять :))) Вобщем я делаю такую программу, которая создает скины к моим программам, но я делаю ее универсальной для всех моих программ, чтобы для каждой можно было создать скин... ))) Там как бы для каждой программы создаю "образ скина" так сказать... и потом по этому "образу" программа генерирует форму для создания скина, там выбора изображений и т.д... Вот какраз в форме(модуле) создания образа мне и нужен такой массив, там вобщем устроено так: есть список форм(TStringList), а к каждой строке этого списка принадлежит еще один список, "параметров формы" ))) но т.к. количество форм и параметров неизвестно сколько создаст "пользователь", то и не известно сколько нужно создавать списков параметров... вот я и создаю по ходу добавления формы в список еще в массиве список параметров, может это чудной алгоритм и делается это немного подругому, но я придумал только это )))


 
Дмитрий_177   (2005-12-22 21:20) [7]

А чтобы обратиться к какойнибудь строке из TObjectList, т.е. чтобы извлечь список(TStringList) из элемента TObjectList, надо как делать?

var
ObjList: TObjectList;

TStringList(ObjList.Items[i])
или так
ObjList.Items[i]
?

Дмитрий_05 это я ))) ошибся числом )))


 
з. танька   (2005-12-22 22:04) [8]

TStringList(ObjList.Items[i])


 
Officeman   (2005-12-22 23:03) [9]

весьма популярно объяснил. вроде по логике всё верно.


 
evvcom ©   (2005-12-23 09:30) [10]


> Дмитрий_177  
> Дмитрий_05  

Ты чего? Шифруешься? Или клонируешься?



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
6-1128110394
Wistful
2005-09-30 23:59
2006.01.15
сообщения net send


14-1135003361
GRAND25
2005-12-19 17:42
2006.01.15
Эстонцы тоже хочуть газу!


2-1134653305
Destroyer
2005-12-15 16:28
2006.01.15
Вопрос по потокам.


1-1134324968
markers
2005-12-11 21:16
2006.01.15
Tlabel и WordWrap


14-1134669601
Kolan
2005-12-15 21:00
2006.01.15
Какой СD-ROM DVD RW выбрать