Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Удаление из Tlist   Найти похожие ветки 

 
Ezorcist   (2007-05-30 17:11) [0]

если создать item в списке:

list.add(@obj);

то как ее потм удалить? можно перебрать все элементы списка и найти тот который =@obj, или может быть можно как-то запомнить эту item которая была создана? (или есть способ еще проще?) :-)


 
clickmaker ©   (2007-05-30 17:12) [1]

IndexOf()?


 
Ezorcist   (2007-05-30 18:41) [2]

Это вернет номер итэма по содержимому? интересно как это реализовано, и не будет ли работать так же долго как перебор?


 
Плохиш ©   (2007-05-30 18:43) [3]


> Ezorcist   (30.05.07 18:41) [2]

Это и есть перебор.


 
Ezorcist   (2007-05-30 18:59) [4]

а можно быстрее?) просто никак не пойму можно ли запомниться итэм? а потом что-то типа PointerToItem.Delete; ? хотя итем и так поинтер?


 
Anatoly Podgoretsky ©   (2007-05-30 19:33) [5]

> Ezorcist  (30.05.2007 18:59:04)  [4]

Зачем тогда нужен TList вообще, запоминай сам указатель


 
Ezorcist   (2007-05-30 20:05) [6]

есть группа tobj если они все в листе то к ним удобно обращаться, но когда tobj понимает, что ему пора удаляться, он должен удалить и себя из этого списка. так вот если бы можно было дать tobj как поле ссылку на элемент списка, то тогда он быстро этот элемент удалил.

можно и через IndexOf но тогда при быстром появлении и удалении tobj -ов начинает тормозить.


 
ЮЮ ©   (2007-05-31 03:29) [7]

Delete в списке всё равно удаляет по индексу, а не по ссылке по итем, так что наличие ссылки не спасёт.

Как решение:
 1) вместо TList - TObjectList, созданный Create(true)
 2) нкаких но когда tobj понимает, что ему пора удаляться, удалять объект должен кто-то другой, причем именно из списка, экземпляр при этом будет уничтожен TObjectList-ом.



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

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
15-1180505544
Эй.
2007-05-30 10:12
2007.06.24
FreeBSD


11-1162570768
MTsv DN
2006-11-03 19:19
2007.06.24
BitBtn.Enabled := False


15-1180041493
sat
2007-05-25 01:18
2007.06.24
bat file


4-1168807319
gibz
2007-01-14 23:41
2007.06.24
связать тип данных и указатель возвращаемый функцией


2-1180570261
Glivera
2007-05-31 04:11
2007.06.24
Очистка JvImage