Главная страница
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
2-1180680961
Gringoire
2007-06-01 10:56
2007.06.24
Защита БД


11-1162649046
Riton
2006-11-04 17:04
2007.06.24
problem with transparency


2-1180955583
Стритрейсер
2007-06-04 15:13
2007.06.24
помогите разобраться


4-1166968703
vertal
2006-12-24 16:58
2007.06.24
Нахождение имен всех com-портов в системе


15-1180449317
Грициан
2007-05-29 18:35
2007.06.24
Абрамович перестанет спонсировать «Челси»