Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c