Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо