Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обход дерева 
:(
    Опции темы
Devorior
Дата 27.9.2002, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 1.8.2002
Где: Обнинск

Репутация: нет
Всего: 3



кто-нить может запостить код рекурсивного обхода TTreeView?
PM MAIL ICQ   Вверх
lsoft
Дата 27.9.2002, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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;
PM MAIL   Вверх
MBo
Дата 27.9.2002, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0691 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.