![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TList, освобождение памяти [D7, WinXP]
Виталий1327 © (2005-08-18 10:26:00)Вопрос в том, как освободить занимаемую списком память.
Метод Free освобождает память самого списка (это список указателей) а как освободить память от самих элементов списка? То есть нужно деструктор вставленных объектов чтобы вызывался. Кто знает как?
Digitman (2005-08-18 12:04:00) [1]
> Виталий1327 © (18.08.05 11:59) [3]
ТО ЖЕ самое по сути делает TObjectList, только неявно.
Виталий1327 (2005-08-18 11:59:00) [2]
for I:=0 to List.Count - 1 do
TObject(List[I]).Free;
Да, это помогло, спасибо!
Конечно, это не есть хороший стиль, что мы вот так прямо приводим типы указателей, но зато работает и память освобождает.
Digitman (2005-08-18 10:29:00) [3]вместо TList используй TObjectList.
в этом случае при TObjectList.Free для каждого объекта - эл-та списка автоматически будет вызван его деструктор
Гаврила (2005-08-18 10:28:00) [4]Если там экземпляры классов - то
for I:=0 to List.Count - 1 do
TObject(List[I]).Free;
или же использовать TobjectList вместо Tlist
если там не экземпляры классов - то соответственно, в зависимости от того, что там