Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.014 c
14-1133363929
oldman
2005-11-30 18:18
2005.12.25
Вот такой интересный вопрос правайдерам...


2-1134140971
Groof
2005-12-09 18:09
2005.12.25
Шаблон vector..


3-1131021367
root
2005-11-03 15:36
2005.12.25
Кирилица в SQL


2-1133948698
VIB
2005-12-07 12:44
2005.12.25
DBGrid


6-1126678729
IHusak
2005-09-14 10:18
2005.12.25
SQL сервер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский