Главная страница
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.018 c
2-1216802282
artkil
2008-07-23 12:38
2008.08.31
Запрет изменения текста в TRichEdit


2-1216808862
AlexeyMir
2008-07-23 14:27
2008.08.31
Как оформить поступление товара


15-1215938456
Zeqfreed
2008-07-13 12:40
2008.08.31
Подскажите, как музыка называется


3-1204629190
harisma
2008-03-04 14:13
2008.08.31
Работа с типом данных TABLE


4-1195858527
periskops
2007-11-24 01:55
2008.08.31
пульт