Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
ВнизTreeView : Copy TreeNodes Найти похожие ветки
← →
Сатир (2002-04-23 14:53) [0]Народ! Помогите советом.
У меня такая ситуация: вытягиваю рекурсивно дерево из ксмл-файла. В дереве есть группы(group) и айтемы(item), корень называется navigator.
Navigator содержит только группы, а группы могут содержать как айтемы, так и вложенные группы с айтемами. Если группа содержит вложенные группы, то эту группу нужно скопировать в отдельное дерево, причем нужно скопировать только дочерние группы без их предка. Как это сделать на этапе формирования первичного дерева?
← →
Song (2002-04-23 15:09) [1]Node - текущая ветвь
IF Node.HasChildren and Node.GetFirstChild.HasChildren then ShowMessage("Данная ветвь "+Node.Text+" имеет вложенную группу.");
← →
Сатир (2002-04-23 15:43) [2]>>Song, это условие уже есть. Но дело в том, что мне нужно не информировать пользователя или себя, а активизировать создание паралельного дерева. То есть, когда попадается вложенная группа, добавлять в другое дерево. Звучит в принципе просто, но вот, что-то не выходит...
← →
Song (2002-04-23 16:12) [3]Т.е. другим словами, Вы не знаете как скопировать весь с подитемами Node.GetFirstChild в другое дерево?
← →
Сатир (2002-04-23 18:18) [4]>> Song - не знаю. Но дело в том что нужно не просто скопировать а создавать в параллельном режиме и с той же архитектурой. То есть, растет себе какое-то деревцо. В нем сначала выростают только ветки group, а дальше эти ветки могут сразу дать листья item, на которых закончится ветка, или породить группы других веток, и вот, как только определяется начало процесса рождения новых веток (от ветки, а не от корня), вот тогда и включить процесс клонирования этой ветки. Если б я имел уже готовое дерево, тогда гораздо проще. Но дело в том что я же не знаю какая ветвь захочет пустить листочки, а какая даст другие ветки...
← →
Cobalt (2002-04-23 19:08) [5]То есть, проще говоря, у вас дерево может иметь только "одноуровневые ветви"?
← →
Song (2002-04-23 21:11) [6]Я всё равно не понял Вашу задачу :(
Нарисуйте её хоть здесь вот так
....
Первая ветка
Подветка1
....
И напишите с какой подветки куда копировать.
← →
Сатир (2002-04-23 22:01) [7]>>Song
navigator
|_group
| |_item
| |_item
|_group
| |_item
| |_group
| | |_item
| | |_item
| |_item
|_group
|_group
| |_item
| |_item
|_group
|_item
У навигатора есть три ветки. Две из них имеют вложения, поэтому мне нужно скопировать вторую ветку(без родителя) в одно дерево, а третью в другое дерево(поскольку они имеют вложения)
То есть из этого дерева я должен получить два дерева следующего вида:
Первое:
_item
|_group
| |_item
| |_item
|_ item
и второе:
_group
| |_item
| |_item
|_group
|_item
Подскажите, пожалуйста, как это сделать?
← →
Song (2002-04-24 09:06) [8]Рассмотрим вот эту часть:
|_group
|_group
| |_item
| |_item
|_group
|_item
у верхнего group есть подитем group у которого тоже есть подветвь (item). Почему эта ветвь не относится к той классификации, ветви которой уходят в другое дерево?
← →
Сатир (2002-04-24 13:15) [9]Ладно, всем спасибо. Уже разобрался сам:-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c