Главная страница
    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.44 MB
Время: 0.034 c
3-1086076426
ИМХО
2004-06-01 11:53
2004.06.27
Clarion


1-1086852834
MetalFan
2004-06-10 11:33
2004.06.27
Как перехватить/поймать/перекрыть...


3-1085649589
Tormoz
2004-05-27 13:19
2004.06.27
Потеря памяти при работе с БД


3-1086030482
Курдль
2004-05-31 23:08
2004.06.27
Специалистам ADO.NET: какой принцип работы с соединениями?


3-1086241896
Litr
2004-06-03 09:51
2004.06.27
Поиск по дате





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский