Главная страница
    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.013 c
5-1118839875
Чайник
2005-06-15 16:51
2005.12.25
Удаление свойства-компонента.


6-1126543519
Илья Бобров
2005-09-12 20:45
2005.12.25
Как сростить Indy Ftp и ProgressBar


14-1133517167
Del_programmer
2005-12-02 12:52
2005.12.25
API хэлп


1-1133161766
MadGhost
2005-11-28 10:09
2005.12.25
Как завершить второй поток, работая с СОМ портом.


2-1134137935
Гость2
2005-12-09 17:18
2005.12.25
свой курсор





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