Главная страница
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.05 c
14-1135233175
begin...end
2005-12-22 09:32
2006.01.15
С Днём рождения! 22 декабря


2-1135259716
kotbazilio
2005-12-22 16:55
2006.01.15
TDateTimePicker


1-1134130477
Антон1209
2005-12-09 15:14
2006.01.15
Скажите как правильнее написать процедуру добавления значения к м


1-1134460627
Antonn
2005-12-13 10:57
2006.01.15
Динамическое создание формы


14-1134921404
Praetor
2005-12-18 18:56
2006.01.15
Воскресная задачка