Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаление всех потомков в Treeview / 15 сообщений из 15, страница 1 из 1
10.04.2013, 11:30
    #38219981
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
Как-то прочитал в http://www.beluch.ru/progr/100comp/3_6_3.htm, что у Treeview есть методы Delete и Clear, которые очищают все дерево и выбраный узел от потомков. В своем Treeview , я не нашел такого метода, и вот хотелось бы как-то написать эту функцию удаление всех потомков выбранного узла в методе Collapse(expand наполняет ветку, Collapse очищает)... Т.е. понимаю, что надо узнать до какого уровня эта ветка заполнена, как-то передавать в эту функцию ключ узла, проверять есть ли у него заполнение и если есть то получается какая-то рекурсия... может, кто делал это чудо, чтоб посмотреть как оно выглядит...
...
Рейтинг: 0 / 0
10.04.2013, 12:17
    #38220097
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
q1w1e1Как-то прочитал в http://www.beluch.ru/progr/100comp/3_6_3.htm, что у Treeview есть методы Delete и Clear, которые очищают все дерево и выбраный узел от потомков. В своем Treeview , я не нашел такого метода, и вот хотелось бы как-то написать эту функцию удаление всех потомков выбранного узла в методе Collapse(expand наполняет ветку, Collapse очищает)... Т.е. понимаю, что надо узнать до какого уровня эта ветка заполнена, как-то передавать в эту функцию ключ узла, проверять есть ли у него заполнение и если есть то получается какая-то рекурсия... может, кто делал это чудо, чтоб посмотреть как оно выглядит...

Код: sql
1.
object.Nodes.Remove(index)
...
Рейтинг: 0 / 0
10.04.2013, 12:18
    #38220102
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
...
Рейтинг: 0 / 0
10.04.2013, 12:28
    #38220125
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
Да с remove для двух уровней я построил
DO WHILE NODE.children>0
lcchildkey=NODE.CHILD.KEY
THIS.nodes.REMOVE(lcchildkey)
ENDDO
Мне надо для n уровней....
...
Рейтинг: 0 / 0
10.04.2013, 13:44
    #38220311
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
q1w1e1Мне надо для n уровней Рекурсия + node.children, node.child, node.next
Что там сложного-то?
...
Рейтинг: 0 / 0
10.04.2013, 14:07
    #38220352
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
При чем здесь рекурсия и уровни? Метод Remove удаляет как сам узел, так и вообще ВСЕ узлы всех уровней, подчиненные удаляемому. Или что надо сделать?
...
Рейтинг: 0 / 0
11.04.2013, 05:07
    #38221186
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
ВладимирМ, у меня не возникало необходимости удалять узлы с подузлами, поэтому я полагал, что ТВ само рекурсивно не удаляет, раз уж ТС об этом спросил .
ЗЫ. А может, ТСу для каждого удалённого узла надо какую-то обработку ещё проводить :)
...
Рейтинг: 0 / 0
11.04.2013, 05:28
    #38221199
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
ВладимирМПри чем здесь рекурсия и уровни? Метод Remove удаляет как сам узел, так и вообще ВСЕ узлы всех уровней, подчиненные удаляемому. Или что надо сделать?То есть .Remove неявно вызывает освобождение памяти от всех подчинённых нод?
...
Рейтинг: 0 / 0
11.04.2013, 10:47
    #38221389
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
Проверил.. в expand добавил messagebox(str(this.nodes.Count), и в Collapse, оказывается да.. при удалении узла, удаляются все его узлы.., но это не было явно написано и поэтому появились сомнения..:-)
...
Рейтинг: 0 / 0
11.04.2013, 11:00
    #38221419
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
но все равно интересно..
nodes.Count общее количество узлов дерева
NODE.children кол-во подузлов(например второго уровня), может есть какая нибудь функция, которя показывает сколько всего подузлов (второго, третьего и т.д. уровня) конкретного узла..., а то опять буду "изобретать велосипед", который уже есть..:-)
...
Рейтинг: 0 / 0
11.04.2013, 11:28
    #38221467
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
q1w1e1но все равно интересно..
nodes.Count общее количество узлов дерева
NODE.children кол-во подузлов(например второго уровня), может есть какая нибудь функция, которя показывает сколько всего подузлов (второго, третьего и т.д. уровня) конкретного узла..., а то опять буду "изобретать велосипед", который уже есть..:-)

Тут хелп по русски
...
Рейтинг: 0 / 0
11.04.2013, 11:30
    #38221472
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
q1w1e1может есть какая нибудь функциявстроенной - нет
а зачем оно вам, если узел рекурсивно удаляется?
...
Рейтинг: 0 / 0
11.04.2013, 11:45
    #38221505
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
... например проверка подузлов отмечен узел или нет ...:-)
...
Рейтинг: 0 / 0
11.04.2013, 11:58
    #38221529
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
q1w1e1, я так и думал. Тогда 14161718
...
Рейтинг: 0 / 0
11.04.2013, 12:59
    #38221668
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление всех потомков в Treeview
спасибо..:-)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Удаление всех потомков в Treeview / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]