Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.008 c
6-26220
ATLANTIDO
2002-02-23 20:47
2002.05.09
РАСШАРИТЬ ДИСК


6-26215
Beka
2002-02-24 13:57
2002.05.09
HTML вместе с Delphi


14-26226
Anatoly Podgoretsky
2002-04-01 10:44
2002.05.09
Дельфи на халяву


1-26122
Mic_2k
2002-04-24 17:11
2002.05.09
Как можно прорисовать табличку в Excel из Delphi


7-26277
lun
2002-02-12 01:28
2002.05.09
Как зделать чтобы дочерние окна были видны как отдельные, т.е. не сворачивались с главным окном и были доступны через панель задач.




   Наверх