Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование TreeView-шных Item-ом


programmer90 ©   (2009-01-29 01:42:00) 

Здраствуйте!
Вопрос про TreeView:
Необходимо скопировать итемы с одного дерева на другое и желательно с чылдренятами.
P.S  F1 неработает :)


Германн   (2009-01-30 00:42:00) [1]


> programmer90   (29.01.09 23:03) [9]
>
> решил, но с помощью другого метода MoveTo ,самое то...


Последовал этому совету?

> MBo ©   (29.01.09 05:44) [3]


Сергей М.   (2009-01-29 23:18:00) [2]

Мдя..

В огороде бузина..


programmer90   (2009-01-29 23:03:00) [3]

решил, но с помощью другого метода MoveTo ,самое то...
Спасибо!


Сергей М.   (2009-01-29 22:25:00) [4]


> создать элемент (node3) на level 1


Node3 := AddChild(nil, 'node3');


> и сделать так чтобы определенные итемы(node1,node2) стали
> его детьми
> и соответсвенно были на level 2.

'
NodeУКоторогоРодительNode3 := AddChild(Node3, 'А по барабану как ты его назовешь');


programmer90   (2009-01-29 22:18:00) [5]

Как преобразовать:
Root
  node1
     child1
     child2
  node2
     child3
В это:
Root
  node3
     node1
        child1
        child2
     node2
        child3
Соль задачи в том чтобы создать элемент (node3) на level 1
и сделать так чтобы определенные итемы(node1,node2) стали его детьми
и соответсвенно были на level 2.
Это имеет самое непосредственное отношение TreeView, посколько здесь самое главное иерархия итемов...


Сергей М.   (2009-01-29 21:55:00) [6]


> programmer90  


TreeView-то тут причем, если ты не можешь формализовать задачу ?


programmer90   (2009-01-29 21:43:00) [7]

Надо немного переформулировать задачу,я понял что использовать 2-е дерево неправильно
Вот собсна суть задачи:
Имеется такое дерево (treeview)
-my little brother's friend
    my                                                                                 {items[1]}
   -little brother's                                                                  {items[2]}
        little
        brother's
    friend
Необходимо объеденить items[1] , items[2]
Под объединением имею ввиду создание нового item-a c текстом: items[1].text + items[2].text;
и самое главное внести под этот новый  итем:  items[1] , items[2]  со всеми их детьми
...
В итоге должно получится следующее:
my little brother's friend
    my little brother's
        my  
        little brother's
            little
            brother's
    friend
...
AddChild позволяет нам добавить  узел и его имя (то есть  вот эта часть не попадет:
            little
            brother's
)
Надеюсь на помощь, спасибо за внимание!


clickmaker   (2009-01-29 11:40:00) [8]

> [2] programmer90   (29.01.09 02:21)

Node := TreeView2.Nodes.AddChild(ParentNodeInTreeView2,'');
Node.Assign(NodeFromTreeView1);

и так рекурсивно для всех "итемов с одного дерева"

как вариант, можно еще воспользоваться TTreeNodes.Assign


MBo   (2009-01-29 05:44:00) [9]

Загляни в статью про Drag Drop, там может быть пример


programmer90   (2009-01-29 02:21:00) [10]

Вообще-то я уже долго сижу над этим...
и f1 у меня не работает: " RAD studio's help namespace is not defenited."
долго гуглил, не нашел подходящей инфы
....
попробовал так:
TreeView2.Items.Insert(TreeView1.Items.Item[5],'has solved');
Но он просто создает поддерево "has solved" , хотя в  TreeView1.Items.Item[5] имеется ветка.
мне нужно чтобы он записал в 'has solved' определенные ветки  из другого дерева
Он даже без чылдернят не копирует, откуда следует что я не правильно использую функции...или вообще не ту функцию.


Германн   (2009-01-29 02:00:00) [11]


> P.S  F1 неработает :)

Не может - научи! Не хочет - заставь!
Потом приходи сюда.


Наверх

Титульная страница Поиск, карта сайта Написать письмо