Главная страница
    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.47 MB
Время: 0.012 c
3-1132318779
vl
2005-11-18 15:59
2006.01.15
Добавление данных в таблицу


6-1128326260
nikolas
2005-10-03 11:57
2006.01.15
IdSMTPServer


2-1135336738
oleg777
2005-12-23 14:18
2006.01.15
не работает запрос к sysusers


3-1132633101
BAckToOfiice
2005-11-22 07:18
2006.01.15
Помогите. Как слконировать таблицу?


14-1134975102
IAmDanil
2005-12-19 09:51
2006.01.15
NET SEND





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский