![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListBox ;глючит, а ;размер проги непрерывно растёт !!!! [D5, Win95/98]
maxi © (2002-02-08 03:06:00)Задался как-то я изучением списков. И вот что обнаружил: всем известно, что с каждой строкой списка в TListBox можно связать какой-либо объект, будь то число, дата, представитель класса и т.д. Это очень удобно.
Но проблема такая : я следил за размером моей программы во времени, и обнаружил, что РАЗМЕР ПРОГРАММЫ НЕПРЕРЫВНО РАСТЁТ.
Рост проги каждый раз вызывался при добавлении нескольких элементов списков со связанными с ними объектами, примерно на 4 кБ (что-то знакомое? - размер страницы). При этом, даже очистка списка командой Clear, или напрямую .Items.delete[I] никак не влияла на размер проги, и она плавно продолжала накапливаться...
Заглянул я в help, а там прямо так и написано:
.Items.delete[I] - If an object is associated with the string, the reference to the object is removed as well.
То бишь - если объект связывается со строкой, ссылка на объект также будет удалена. ССЫЛКАна объект! Но сам объект будет спокойно висеть в памяти и занимать место.
Поэтому, что делать ? Надо как то освободить память, но я не знаю как. Ваши предложения ?
Mbo (2002-02-08 07:13:00) [1]надо сначала непосредственно освобождать объект
TSomeObject(*.items.objects[i]).free;