Форум: "Начинающим";
Текущий архив: 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ı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.043 c