Вниз
Скачать: CL | DM;

TTree   Найти похожие ветки 

← →
RX   (2005-12-12 00:05) [0]

Как перейти к след ветке
Есть дерево вида
            E-------1
                  ----2
                  ----3
Допусти в данный момент у меня Node=1 как ко 2й ветке перейти
и переход циклический? а то если у меня в данный момент Node=3


← →
Digitman ©   (2005-12-12 13:38) [1]


> Допусти в данный момент у меня Node=1


> у меня в данный момент Node=3


галиматья


← →
evvcom ©   (2005-12-12 15:29) [2]


> Digitman ©   (12.12.05 13:38) [1]

Я даже до конца не дочитал, в ступор вошел. :)


← →
Morgoth_   (2005-12-12 15:34) [3]

по пооду как перейти к след. ветке
GetNextSibling - получить следующую ветку
GetPrevSibling - получить предыдущую

всё остальное сумбурно как-то


← →
umbra ©   (2005-12-12 15:38) [4]

node2 := treeview.items[treeview.selected].getnextsibling;


← →
RX   (2005-12-12 15:38) [5]

в каждом узле хоть скоко подузлов
всё динамически заполняется

вот например появился Узел с тремя подузлами
надо найти определённый подузел этого Узла
чтобы в найденный подузел записать ещё подузлы


← →
umbra ©   (2005-12-12 15:40) [6]

TTreeNode + F1. раздел methods


← →
Morgoth_   (2005-12-12 15:45) [7]

а как вообще ты собираешься определять в какой узел надо добавлять?


← →
Digitman ©   (2005-12-12 15:48) [8]


> RX   (12.12.05 15:38) [5]


ты о каком конкретно классе речь ведешь, клоун ?)


← →
RX   (2005-12-12 15:50) [9]

У меня тут целая книженция. Примеров нет.

строка node2 := treeview.items[treeview.selected].getnextsibling;
ошибку выдаёт Инкомпатбл типс: интеджр и титринод


← →
RX   (2005-12-12 15:53) [10]

класс TTreeView
а как вообще ты собираешься определять в какой узел надо добавлять?
if  (Node.HasChildren=false) and (Node.Text="E")
и там допустим Node:=TreeView.Items.AddChild(Node,"E");


← →
Digitman ©   (2005-12-12 15:54) [11]


> RX   (12.12.05 15:50) [9]
> У меня тут целая книженция


молодца.

судя по твоим постам, у всех есть только одна книженция - в точности та же, что и у тебя... и других "книженций" и инф-ции в мире не существует.

и все ОБЯЗАНЫ знать, что речь ты ведешь именно о классе TTreeView.

так ?

node2 д.б. объявлен как TTreeNode


← →
Morgoth_   (2005-12-12 15:54) [12]

node2 := treeview.selected.getnextsibling


← →
RX   (2005-12-12 15:56) [13]

мне надо чтобы если условию не подчиняется то перейти к след. подузлу данного узла или вообще перейти на уровень выше


← →
Morgoth_   (2005-12-12 15:58) [14]

if  (Node.HasChildren=false) and (Node.Text="E")
и там допустим Node:=TreeView.Items.AddChild(Node,"E");


пробегаешь по всем элементам дерева и условие на каждом применяешь, только элементу надо присвоить уникальный id в Data, потому что названия могут быть одинаковыми


← →
RX   (2005-12-12 15:59) [15]

Node у меня и так TTreeNOde

node := treeview.selected.getnextsibling;
вылетает с ошибкой (дизассемблерной)


← →
Morgoth_   (2005-12-12 15:59) [16]

мне надо чтобы если условию не подчиняется то перейти к след. подузлу данного узла или вообще перейти на уровень выше

еще одно слово в помощь - рекурсия


← →
RX   (2005-12-12 16:06) [17]

а на уровень выше как вылазить?


← →
RX   (2005-12-12 16:17) [18]

блин интересно как это по всем пробежать у меня их всё время разное число и структура

вот простой примерчик (Node у меня как указатель)
Node:=TreeView.Items.Add(Nil,"E");  //указатель на корне
TreeView.Items.AddChild(Node,"E");
Node:=TreeView.Items.AddChild(Node,";");//указатель на узле причём на втором


как заставить этот указатель Node быть на первом узле?


← →
Morgoth_   (2005-12-12 16:52) [19]

блин интересно как это по всем пробежать у меня их всё время разное число и структура

создай процедуру, которая вызывает сама себя:

метка1
в эту процедуру передаешь TTreeNode, смотришь есть ли у него дочерние элементы, если есть, то пробегаешь по каждому из них и вызываешь эту же процедуру в самой себе, а дальше goto метка1

попутно применяй свои условия :)


← →
RX   (2005-12-12 17:02) [20]

тогда конкретнее вопрос как выполнить такое действие?

"Выбрать КРАЙНЮЮ с начала ,содержащую тескт <<E>>, ветку без дочерних"


← →
RX   (2005-12-12 17:05) [21]

т.е. если структура такая
  E------1
      ----E
      ----3
      ----E

нужен не только котрый удовлетворяет условию
if  (Node.HasChildren=false) and (Node.Text="E")
а ещё и КРАЙНЮЮ!!!!
как эту определить КрАЙность


← →
Morgoth_   (2005-12-12 17:13) [22]

Для этого лучше искать элемент не по имени, а по уникальному идентефикатору, по принципу, который описан выше.
Тяжелая наверное все таки книженция.



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

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.026 c
2-1134137750
Толян
2005-12-09 17:15
2005.12.25
переменая типа Memo


6-1126118804
Rave
2005-09-07 22:46
2005.12.25
Поиск по серверам.


2-1134081922
Quattro
2005-12-09 01:45
2005.12.25
TChart


14-1133138436
Kerk
2005-11-28 03:40
2005.12.25
Samara Mastak Party


14-1133271489
baks_uz
2005-11-29 16:38
2005.12.25
Дельфи глазами Хакера




   Наверх