![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTreeView скопировать в другой [D7, 2000]
mc2 © (2008-07-22 18:03:00)Есть два TTreeView: один уже заполнен, второй пустой. Во втором я хочу собрать все-все элементы из первого, но за исключением тех элементов, которые называются "помидоры", это например.
Я понимаю, что надо циклом пройтись и добавлять все во второе дерево, но вот что-то с этим циклом совсем плохо, никак не придумаю каким образом действовать.
Что подскажете?
Спасибо.
Сергей М. (2008-07-22 21:10:00) [1]procedure AddToNewTree(ParentNode, ChildNode: TTreeNode);
Сергей М. (2008-07-22 21:07:00) [2]
> проблема в том что там рекурсия
А я думал, что проблема в помидорах)
Какие тебе нафих помидоры, если ты с элементарной беспомидорной рекурсией не можещь справиться ?
> AddChild ???
Что "???"
Ты не знаешь параметры вызова этого метода ? или где ?
mc2 (2008-07-22 20:55:00) [3]Вся проблема в том что там рекурсия, у меня никак не получается заставить свою голову работать:
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 19:56:00) [4]
> за исключением тех элементов, которые называются "помидоры"
Рекурсия.
Учитывающая или исключающая гнилые помидоры, которые сейчас в тебя полетят ил не полетят.
Куда ж без нее)..
mc2 (2008-07-22 19:45:00) [5]Спасибо. Вариант с assign - уже использовался. Но я не указал, что у меня два разных дерева (один стандартный TTreeView, второе не стандартное - TVirtualStringTree), в таком случае вариант с assign не годиться.
Мне именно нужено перебрать и вручную добавить узлы. Я никак не соображу с циклом, и я знаю что он примитивный.
Вариант все привести к деревьям одних типов пока не годиться, мне нужно просто сделать наживку, потом я все переведу на одни и те же деревья.
Denis__ (2008-07-22 18:28:00) [6]
> удаляй свои помидоры
:-D
Palladin (2008-07-22 18:08:00) [7]TreeView2.Items.Assign(TreeView1.Items);
потом беги в обратном цикле (с количество-1 до 0) и удаляй свои помидоры
Dennis I. Komarov (2008-07-22 18:07:00) [8]Подскажем что циклом не надо... И вообще не надо оно тебе, ибо:
> но вот что-то с этим циклом совсем плохо, никак не придумаю...
а он там самый простой