Текущий архив: 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.44 MB
Время: 0.036 c