|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Очистка TdxTreeList
Всем привет.
Использую устаревший компонент DevExpress под Delphi 5 для построения дерева TdxTreeList. Никак не могу понять как очищать дерево. Есть метод Items[0].DeleteChildren, который удаляет всё кроме корневого узла. Кто подскажет? Последний раз редактировалось verter77, 19.12.2024 в 09:45. |
#2
|
|||
|
|||
А Items.Clear нету?
|
#3
|
|||
|
|||
Вот нету. Сам в шоке.
|
#4
|
|||
|
|||
Ну а Delete(Index) или Remove(Index) есть?
Или посмотреть методы у самого компонета, а не у св-ва Items. |
#5
|
|||
|
|||
Этот компонент TdxTreeListNode уже давно деприкэйтед и заменён на новый TcxTreeListNode. Вот на него документация на сайте разработчика:
https://docs.devexpress.com/VCL/cxTL...tNode._methods В новом компоненте всё нормально - наряду с методом Items.DeleteChildren есть метод Items[0].Delete. А в старом компоненте есть только Items.DeleteChildren. Проблема решается просто: чтобы очистить всё дерево нужно с корневым элементом сделать следующее: Items[0].DeleteChildren; Items[0].Free; т.е. сначала удалить все подчинённые узлы, а потом освободить из памяти сам узел. |
#6
|
|||
|
|||
хм. любопытное решение.
Интересно, как это реализованно в коде. Вроде как ты вызываешь деструктор узла. Как компонет поймет, что узел удален? Ну если только не реализована обратная связь узла с компонентом. Но это выглядит странно... Видать совсем-совсем старая версия библиотеки. |