Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Как скопировать элемент TreeView с "детьми"?   Найти похожие ветки 

 
Spectre ©   (2004-06-07 11:49) [0]

Добрый день!

Вопрос следующий. Имеется TreeView. Нужно создать другой TreeView , поместив в него дочерние элементы выделенного в первом TreeView, то есть вырезать кусок. Я так понимаю, нужно делать рекурсией, или есть способ попроще? Вобщем, не знаю как.


 
pasha_golub ©   (2004-06-07 11:51) [1]

Если с нодами не ассоциировано ничего (TTreeNode.Data), то милости просим
TAnotherTreeView.Selected.Assign(TFirstTreeNode.Selected)


 
Spectre ©   (2004-06-07 12:12) [2]

Таким образом я скопирую сам выделенный нод. А мне надо его "детей" с их "детьми" и т.д. Вашим способом не подходит.


 
pasha_golub ©   (2004-06-07 12:21) [3]

Да, был не прав. Тады руцями :-)


 
Spectre ©   (2004-06-09 21:24) [4]

Отвечаю сам, может кому пригодится.

procedure GetSubTree(StartNode, ParentNode: TTreeNode);
var
 Node: TTreeNode;
begin
 repeat
   Node := AnotherTreeView.Items.AddChild(ParentNode, StartNode.Text);
   { Любые действия с Node, например Node.Data := StartNode.Data }
   if StartNode.HasChildren then GetSubTree(StartNode.getFirstChild, Node);
   StartNode := StartNode.getNextSibling;
 until StartNode = nil;
end;

Вызывается так:
with FirstTreeView.Selected do
 if HasChildren then GetSubTree(getFirstChild, nil);



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1087047993
Navi
2004-06-12 17:46
2004.06.27
Заморочка в коллекции


3-1086020321
Cyber
2004-05-31 20:18
2004.06.27
Построение запроса


14-1086783113
Юрий
2004-06-09 16:11
2004.06.27
??? Выбор языка программирования ???


3-1085999524
Balkon
2004-05-31 14:32
2004.06.27
Ошибка "Master table is open" при копировании детальной таблицы.


14-1086847223
BiN
2004-06-10 10:00
2004.06.27
Личный вклад в историю или Кочубей не пройдет!!! :)