![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Devorior |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 559 Регистрация: 1.8.2002 Где: Обнинск Репутация: нет Всего: 3 |
кто-нить может запостить код рекурсивного обхода TTreeView?
|
|||
|
||||
lsoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.9.2002 Репутация: нет Всего: нет |
Можно нерекурсивно перебрать все вершины дерева.
for i:=0 to TreeView1.Items.Count-1 do begin DoSomething(TreeView1.Items[i]); end; Рекурсивный код такой: procedure HandleTree(aTreeView:TTreeView); procedure Action(aTreeNode:TTreeNode); var lChild:TTreeNode; begin {здесь обработать aTreeNode в соответствии с алгоритмом} lChild:=aTreeNode.getFirstChild; repeat if lChild<>nil then begin Action(lChild); end; lChild:=aTreeNode.GetNextChild(lChild); until lChild = nil; end; begin Action(aTreeView.Items[0]); end; |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 3 Всего: 18 |
procedure TForm1.Button1Click(Sender: TObject);
var node:TTreenode; procedure treewalk(Node:TTreeNode); var i:integer; begin ListBox1.Items.Add(node.text); for i:=0 to node.Count-1 do treewalk(node.Item[i]); end; begin Node:=TreeView1.Items.GetFirstNode; while node<>nil do begin Treewalk(node); Node:=Node.GetNextSibling; end; end; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |