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

Вниз

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

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

Наверх





Память: 0.53 MB
Время: 0.045 c
1-1188554380
Chaser
2007-08-31 13:59
2007.11.18
WebBrowser1 - Установка значения в элементе Select


2-1193198709
cvg
2007-10-24 08:05
2007.11.18
Какая функция возвращает длину массива ComboBox?


9-1137184162
Unsigned
2006-01-13 23:29
2007.11.18
Проф. геймдев на Делфи


15-1190725346
Piter
2007-09-25 17:02
2007.11.18
Синхронизация в PHP, многопоточность


6-1174411919
***(H@kker)***
2007-03-20 20:31
2007.11.18
Как написать сервер на Delphi типа Apach





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