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

TTreeView скопировать в другой   Найти похожие ветки 

 
mc2   (2008-07-22 18:03) [0]

Есть два TTreeView: один уже заполнен, второй пустой. Во втором я хочу собрать все-все элементы из первого, но за исключением тех элементов, которые называются "помидоры", это например.

Я понимаю, что надо циклом пройтись и добавлять все во второе дерево, но вот что-то с этим циклом совсем плохо, никак не придумаю каким образом действовать.
Что подскажете?

Спасибо.


 
Dennis I. Komarov ©   (2008-07-22 18:07) [1]

Подскажем что циклом не надо... И вообще не надо оно тебе, ибо:

> но вот что-то с этим циклом совсем плохо, никак не придумаю...

а он там самый простой


 
Palladin ©   (2008-07-22 18:08) [2]

TreeView2.Items.Assign(TreeView1.Items);
потом беги в обратном цикле (с количество-1 до 0) и удаляй свои помидоры


 
Denis__ ©   (2008-07-22 18:28) [3]


> удаляй свои помидоры

:-D


 
mc2   (2008-07-22 19:45) [4]

Спасибо. Вариант с assign - уже использовался. Но я не указал, что у меня два разных дерева (один стандартный TTreeView, второе не стандартное - TVirtualStringTree), в таком случае вариант с assign не годиться.

Мне именно нужено перебрать и вручную добавить узлы. Я никак не соображу с циклом, и я знаю что он примитивный.

Вариант все привести к деревьям одних типов пока не годиться, мне нужно просто сделать наживку, потом я все переведу на одни и те же деревья.


 
Сергей М. ©   (2008-07-22 19:56) [5]


> за исключением тех элементов, которые называются "помидоры"


Рекурсия.
Учитывающая или исключающая гнилые помидоры, которые сейчас в тебя полетят ил не полетят.
Куда ж без нее)..


 
mc2   (2008-07-22 20:55) [6]

Вся проблема в том что там рекурсия, у меня никак не получается заставить свою голову работать:

procedure AddToNewTree(SrcNode: TTreeNode);
begin
 NewTree.AddChild ???

 if SrcNode.HasChildren then
   for i := 0 to SrcChildren - 1 do
      AddToNewTree(SrcNode.Item[i]);
end;

...

AddToNewTree(OldTreeView.Items.GetFirst);


 
Сергей М. ©   (2008-07-22 21:07) [7]


> проблема в том что там рекурсия


А я думал, что проблема в помидорах)

Какие тебе нафих помидоры, если ты с элементарной беспомидорной рекурсией не можещь справиться ?


> AddChild ???


Что "???"

Ты не знаешь параметры вызова этого метода ? или где ?


 
Сергей М. ©   (2008-07-22 21:10) [8]

procedure AddToNewTree(ParentNode, ChildNode: TTreeNode);



Страницы: 1 вся ветка

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



Память: 0.46 MB
Время: 0.009 c
4-1194929446
balepa
2007-11-13 07:50
2008.08.31
CE_FRAME


1-1197619669
Константин
2007-12-14 11:07
2008.08.31
uses необходимое


1-1197376743
newbie2
2007-12-11 15:39
2008.08.31
как работает TEvent?


15-1215263672
Fredy314
2008-07-05 17:14
2008.08.31
Вычисление crc32 по частям


2-1216819268
lavgirls
2008-07-23 17:21
2008.08.31
Подскажите как удалить папку




   Наверх