Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКак удалть объёкты из TObjectList и не уменьшишь при этом .... Найти похожие ветки
← →
Константин (2010-04-22 15:03) [0]Как удалть объёкты из TObjectList и не уменьшишь при этом количество указателей? Надо в цикле for бежать по объектам и если таковой не подходит по условию делать ему Free или что то там (в зависимости от характера владения). После окончания цикла убить все указатели на объекты, которые мы удалили.
← →
Демо © (2010-04-22 15:08) [1]
> и если таковой не подходит по условию делать ему Free
В TObjectList не нужно Free выполнять для элементов. Нужно просто удалить элемент из списка.
← →
Германн © (2010-04-22 15:09) [2]
> Как удалть объёкты из TObjectList и не уменьшишь при этом
> количество указателей?
downto
← →
Омлет © (2010-04-22 15:10) [3]Прочитай про OwnsObjects у TObjectList.
← →
Ins © (2010-04-22 15:10) [4]Насколько я понял вопрос, просто присвоить Item-у nil, но есть подозрение, что пройдись мы в цикле в обратном порядке (List.Count - 1 downto 0) вопрос бы и не возник
← →
Ega23 © (2010-04-22 15:10) [5]1. ObjectList.OwnsObjects := False;
2.for i := list.Count-1 downto 0 do
if (list[i] = чему-то там) then
begin
list[i].Free;
list.Delete(i);
end;
← →
Константин (2010-04-22 16:37) [6]спасибо, точно, downto как раз пройдёт так как надо!
← →
icWasya © (2010-04-22 19:37) [7]по условию сабжа требуется не [5] а
1. ObjectList.OwnsObjects := False;
2.
for i := list.Count-1 downto 0 do
if (list[i] = чему-то там) then
begin
list[i].Free;
llist[i]:=nil;
end;
← →
Омлет © (2010-04-22 20:03) [8]> icWasya © (22.04.10 19:37) [7]
А не проще ли:
1. ObjectList.OwnsObjects := True;
2.for i := list.Count-1 downto 0 do
if (list[i] = чему-то там) then
list.Delete(i);
← →
Ega23 © (2010-04-22 22:39) [9]
> А не проще ли:
>
> 1. ObjectList.OwnsObjects := True;
> 2.
> for i := list.Count-1 downto 0 do
> if (list[i] = чему-то там) then
> list.Delete(i);
А чёрт его знает, что ему там нужно. В принципе, достаточно downto и Delete. Но может оказаться, что недостаточно.
← →
Игорь Шевченко © (2010-04-22 22:52) [10]"Со дна я вытащил живого партизана,
Не знал он, бедный, что закончилась война"
(с) песня
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.056 c