Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: 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 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
11-1193002581
Elec3C
2007-10-22 01:36
2008.08.31
Системное меню Edit а


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


4-1195407043
IGOR
2007-11-18 20:30
2008.08.31
Число страниц и копий, посылаемых на печать


15-1215691880
zinetz_victor
2008-07-10 16:11
2008.08.31
Как увеличить приоритет для flash activeX?


15-1215692505
i
2008-07-10 16:21
2008.08.31
Смена языка интерфейса в висте..