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

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

← →
Ksander   (2007-10-17 12:02) [0]

Здравствуйте уважаемые мастера, подскажите как мне реализовать слудующую задачу Есть на форме TreeView в нём я строю дерево.
Вопрос в следующем как мне теперь построить таблицу, которая содержит поля(id, parentid, name) обрабатывая как то это дерево. Желательно чтобы эта таблица была сформированна В БД InterBase через IB компоненты.
Уже есть БД с пустой таблицей с полями(id, parentid, name), или хотябы таблица в StrıngGrıde, просто я не пойму как работать с TreeViev


← →
Dimaxx ©   (2007-10-17 12:04) [1]

Причем тут дерево и таблица?? Опиши, что нужно сделать подробнее...


← →
Сергей М. ©   (2007-10-17 12:05) [2]


> просто я не пойму как работать с TreeViev


Что конкретно не понятно ?


← →
Ksander   (2007-10-17 12:21) [3]

Нужно чтобы построилась таблица с полями(id, parentid, name) к примеру самый верхний уровень дерева имеет parentıd = 0 их может быть несколько(parentid = 0) тоесть эта строка в TreeView не имеет дочерних элементов(самый верхний уровень) эти строки имееют ıd 1.2 и тд если какая то строка
имеет Parentid =1 то это следующая ветвь строки с id =1 parentid =1  очередь и д т, а name это текст строки TreeView


← →
Сергей М. ©   (2007-10-17 12:25) [4]


> Ksander   (17.10.07 12:21) [3]


Для этого нужен рекурсивный обход узлов дерева.


← →
Сергей М. ©   (2007-10-17 12:27) [5]


> Ksander


Откуда в TreeView взялись данные ?


← →
Ksander   (2007-10-17 12:27) [6]

Ведь древовидная структура она содержит для каждого елемента: id-номер,
parentid-предка, name-название елемента.


← →
Ksander   (2007-10-17 12:28) [7]

Да данные не взялись нужно построить эти данные в таблице


← →
Сергей М. ©   (2007-10-17 12:30) [8]


> данные не взялись нужно построить эти данные в таблице


Если они "не взялись", то какие же данные ты собрался "построить" в таблице ?


← →
Ksander   (2007-10-17 12:31) [9]

в том то и дело что нет в тривиев таких данный об узле как(id, parentid)есть толлько имя


← →
ЮЮ ©   (2007-10-17 12:34) [10]

> Если они "не взялись", то какие же данные ты собрался "построить"
> в таблице ?


Естественно, без приложения он не сможет заполнить таблицу, структуру которой он привел. А приложение должно <далее по subj-у>


← →
clickmaker ©   (2007-10-17 12:35) [11]


> [9] Ksander   (17.10.07 12:31)

TTreeNode.Data


← →
Сергей М. ©   (2007-10-17 12:35) [12]


> есть толлько имя


Так вот это самое "имя" - оно что, с луны свалилось ? И оно что, не данные разве ?


← →
Ksander   (2007-10-17 12:39) [13]

Имя - это надпись елемента дерева(name)


← →
clickmaker ©   (2007-10-17 12:46) [14]


> это надпись елемента дерева(name)

вообще-то, Text
name - это имя компонента


← →
Ksander   (2007-10-17 12:51) [15]

Ну ошибся чёток


← →
Ksander   (2007-10-17 12:53) [16]

Ну помогите уважаемые неужели эта задача нерешаема


← →
clickmaker ©   (2007-10-17 12:55) [17]


> [16] Ksander   (17.10.07 12:53)

что именно непонятно?


← →
Ksander   (2007-10-17 12:58) [18]

Ну как построить таблицу непонятно


← →
ЮЮ ©   (2007-10-17 12:58) [19]

> Ну помогите уважаемые неужели эта задача нерешаема

Решаема. Но
1) почему за решение взялся ты.
2) почему теперь перекладываешь на нас.

Поищи компонент типа DBTree.  Вчера, кстати, эта тема уже поднималась.


← →
Ksander   (2007-10-17 13:02) [20]

Я же не прошу вас решить я прошу по крайне мере навести на мысли
какими свойсствами и методами TreeV&#305;ew оперировать, а DBTree не подходит лаб раб гласит что нужно сделать через тривиев.


← →
Reindeer Moss Eater ©   (2007-10-17 13:03) [21]

прокололся ты чувак. беги скорее


← →
Ksander   (2007-10-17 13:05) [22]

В чём прокололся? куда бежать?


← →
Reindeer Moss Eater ©   (2007-10-17 13:06) [23]

В том, что про лабораторку проболтался.
Щас тебя пинать будут.


← →
Ksander   (2007-10-17 13:07) [24]

Я пошутил


← →
clickmaker ©   (2007-10-17 13:12) [25]

1. Почитать про свойства TreeNode.Count, TreeNode.Parent, TreeNode.Item[Index]
2. Назначить каждому TreeNode уникальный ID
3. Бежать рекурсивно по дереву и добавлять записи в таблицу ID = ID текущей ветки, ParentID = Node.Parent ID, Name = Text


← →
Ksander   (2007-10-17 13:21) [26]

Понятно по 1.2 А бегать рекурсивно не умею


← →
Ksander   (2007-10-17 13:23) [27]

Ну да ладно самому рыть надо


← →
Anatoly Podgoretsky ©   (2007-10-17 20:33) [28]

> Ksander  (17.10.2007 13:07:24)  [24]

Поздно


← →
Антон   (2007-10-26 02:28) [29]

Мне пришлось решать в точности такуюже задачу (собственно по этой причине я и наткнулся на эту конференцию), в основном то, что я нашел было связано с рекурсией. В моем случае это не совсем то, что нужно. Поэтому, пришлось ковырятся самому. Накидал небольшую прогу, которая считывает данные с таблици в TreeView и обратно, но по мимо id|name|parent_id есть возможность хранить в TreeView и в таблице какое угодно количество другой информации. Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники (правда я использовал CBuilder 6, но хрен редьки не страшнее)


← →
Антон   (2007-10-26 02:29) [30]

Мне пришлось решать в точности такуюже задачу (собственно по этой причине я и наткнулся на эту конференцию), в основном то, что я нашел было связано с рекурсией. В моем случае это не совсем то, что нужно. Поэтому, пришлось ковырятся самому. Накидал небольшую прогу, которая считывает данные с таблици в TreeView и обратно, но по мимо id|name|parent_id есть возможность хранить в TreeView и в таблице какое угодно количество другой информации. Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники (правда я использовал CBuilder 6, но хрен редьки не страшнее)


← →
Riply ©   (2007-10-26 02:42) [31]

>  [30] Антон   (26.10.07 02:29)
> Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники

Sorry. Просто интересно: Чего ты хочешь добиться "присылая исходники" ?
В ветке же ясно сказано: это лабораторная.
Ты этим толко вредишь человеку, а не помогаешь.
IMHO - разумеется.


← →
Антон   (2007-10-26 10:54) [32]

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


← →
Ega23 ©   (2007-10-26 10:57) [33]


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


Вот из-за таких дундуков как ты плодится масса "бутонокидателей".


← →
Jeer ©   (2007-10-26 11:01) [34]


> Антон   (26.10.07 10:54) [32]
>
> Я сам, будучи студентом, очень многому научился благодаря
> чужим исходникам


Когда на его будущей работе он вдруг поймет, что деньги дают не за чужой труд, а за его - будет поздно.


← →
Amoeba ©   (2007-10-26 11:57) [35]

TjvDBTreeView из библиотеки JVCL позволяет как отображать таблицу в дерево, так и заполнять и редактировать ее из этого дерева.


← →
anonim   (2007-10-27 12:12) [36]

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


← →
anonim   (2007-10-27 12:49) [37]


procedure ...;
var
 s       : String;
 TreeNode: TTreeNode;
begin
 memo1.clear;         //будем выводить лог в memo (очищаем)

 TreeNode := Form1.TreeView.Items.GetFirstNode; //первый treenode в TreeView
 repeat
   if TreeNode.Selected then s:="*"             //treenode выбран
   else s:="";
   s:=s+"absind="+inttostr(TreeNode.AbsoluteIndex)+" ";   //абсолютный индекс, индивидуален для
каждого treenode в treeview
   if TreeNode.parent<>nil then s:=S+"parind="+inttostr(TreeNode.Parent.AbsoluteIndex)+" ";
//абсолютный индекс  родителя
   s:=s+"lev="+inttostr(TreeNode.Level)+" ";              //уровень, чем больше, тем "глубже" treenode
   memo1.Lines.Add(S+TreeNode.Text);                      //выводим лог
   TreeNode := TreeNode.GetNext;                          //следующий treenode в treeview
 until TreeNode=nil;
end;


можно и без рекурсии ;)



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

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



Память: 0.53 MB
Время: 0.019 c
15-1192485515
Германн
2007-10-16 01:58
2007.11.18
<OffTop> Любимая музыка


3-1183979958
ambhtr
2007-07-09 15:19
2007.11.18
Пропадает изображение меню, во время загрузки базы


9-1163444466
Romanuh
2006-11-13 22:01
2007.11.18
Помогите с алгоритмом.


1-1188215261
leonidus
2007-08-27 15:47
2007.11.18
Как добавить в TRichEdit таблицу


3-1183544726
Krants
2007-07-04 14:25
2007.11.18
Access, вызов импорта




   Наверх