Вниз
Скачать: CL | DM;

Help me!!! Не могу очистить TList (TList.Clear-но память прибавл)   Найти похожие ветки 

 
IceClimber ©   (2004-05-27 18:54) [0]

Я делаю такую штуку:

MemoList:=TList.Create;

for i:=0 to 10
begin
Getmem(memo,1);
memo^:=TMemo.Create(ScrollBox1);  {var memo:^TMemo;}
memo.Parent:=ScrollBox1;

MemoList.Add(memo);
end;

А потом при нажатии кнопки мне нужно очистить MemoList,
я делаю MemoList.Clear; Вроде бы все Ок, но при каждом нажатии кнопки
объем памяти увеличивается и после 20 кликов прога начинает тормозить.
Как этого избежать?


 
Тимохов ©   (2004-05-27 18:55) [1]

что за лажа.


> Getmem(memo,1);


указатели в win32 занимают 4 байта.


 
Гаврила ©   (2004-05-27 18:58) [2]

1. Не memo:^TMemo а memo: TMemo
2. Без GetMem
3. При очистке списка нужно разрушить объекты (если они больше не нужны) - в цикле вызвать Free


 
panov ©   (2004-05-27 18:59) [3]

>IceClimber ©   (27.05.04 18:54)

Кроме очистки списка, нужно уничтожать еще и сами объекты:

for i := MemoList.Count-1 downto 0 do
 TObject(MemoList.Items[i]).Free;


 
Тимохов ©   (2004-05-27 19:05) [4]

Дайте и я присоединюсь :))

В скамом конце надо не забыть удалить сам список:

MemoList.Free()


 
VMcL ©   (2004-05-27 19:06) [5]

>>IceClimber ©  (27.05.04 18:54)
>>panov ©  (27.05.04 18:59) [3]

Или использовать TObjectList с OwnsObjects = True.


 
Clickmaker ©   (2004-05-27 19:08) [6]

Я тоже хочу сказать :))

Для ленивых специально изобрели TObjectList с замечательным свойством OwnsObjects. Если его включить, то [3] можно не делать!!! :))


 
Гаврила ©   (2004-05-27 19:10) [7]

Кстати, если кто не в курсе, можно использовать TObjectList :-)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
3-1084467146
3APA3A
2004-05-13 20:52
2004.06.06
insert результатов select а


1-1084998259
greenrul
2004-05-20 00:24
2004.06.06
Удаление history+cache в Internet Explorer


1-1084669856
Алекс А
2004-05-16 05:10
2004.06.06
Какие есть библиотеки для работы с числами размером до 25 знаков?


4-1083751788
Серж
2004-05-05 14:09
2004.06.06
Как запретить обновление окон некоего приложения?


14-1084452019
Dmitriy O.
2004-05-13 16:40
2004.06.06
А вот зацените анимацию на основе БД.




   Наверх