![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView [D7, XP]
Ksander © (2007-10-17 12:02:00)Здравствуйте уважаемые мастера, подскажите как мне реализовать слудующую задачу Есть на форме TreeView в нём я строю дерево.
Вопрос в следующем как мне теперь построить таблицу, которая содержит поля(id, parentid, name) обрабатывая как то это дерево. Желательно чтобы эта таблица была сформированна В БД InterBase через IB компоненты.
Уже есть БД с пустой таблицей с полями(id, parentid, name), или хотябы таблица в StrıngGrıde, просто я не пойму как работать с TreeViev
anonim (2007-10-27 12:49:00) [1]
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;
можно и без рекурсии ;)
anonim (2007-10-27 12:12:00) [2]имхо исходники очень помогают разобратся в некоторых вещах, если человек постоянно кодит, исходники помогают расширить кругозор, так сказать, т.к. пишут все по разному, если человек писать сам не может и не хочет то и программером ему не стать, найдет другую работу себе.
Amoeba (2007-10-26 11:57:00) [3]TjvDBTreeView из библиотеки JVCL позволяет как отображать таблицу в дерево, так и заполнять и редактировать ее из этого дерева.
Jeer (2007-10-26 11:01:00) [4]
> Антон (26.10.07 10:54) [32]
>
> Я сам, будучи студентом, очень многому научился благодаря
> чужим исходникам
Когда на его будущей работе он вдруг поймет, что деньги дают не за чужой труд, а за его - будет поздно.
Ega23 (2007-10-26 10:57:00) [5]
> Я сам, будучи студентом, очень многому научился благодаря
> чужим исходникам, и стал достаточно грамотным специалистом
> в своей сфере. Если он такой-же, я рад помочь ему, как в
> свое время многие помогали мне.
Вот из-за таких дундуков как ты плодится масса "бутонокидателей".
Антон (2007-10-26 10:54:00) [6]Я сам, будучи студентом, очень многому научился благодаря чужим исходникам, и стал достаточно грамотным специалистом в своей сфере. Если он такой-же, я рад помочь ему, как в свое время многие помогали мне.
Riply (2007-10-26 02:42:00) [7]> [30] Антон (26.10.07 02:29)
> Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники
Sorry. Просто интересно: Чего ты хочешь добиться "присылая исходники" ?
В ветке же ясно сказано: это лабораторная.
Ты этим толко вредишь человеку, а не помогаешь.
IMHO - разумеется.
Антон (2007-10-26 02:29:00) [8]Мне пришлось решать в точности такуюже задачу (собственно по этой причине я и наткнулся на эту конференцию), в основном то, что я нашел было связано с рекурсией. В моем случае это не совсем то, что нужно. Поэтому, пришлось ковырятся самому. Накидал небольшую прогу, которая считывает данные с таблици в TreeView и обратно, но по мимо id|name|parent_id есть возможность хранить в TreeView и в таблице какое угодно количество другой информации. Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники (правда я использовал CBuilder 6, но хрен редьки не страшнее)
Антон (2007-10-26 02:28:00) [9]Мне пришлось решать в точности такуюже задачу (собственно по этой причине я и наткнулся на эту конференцию), в основном то, что я нашел было связано с рекурсией. В моем случае это не совсем то, что нужно. Поэтому, пришлось ковырятся самому. Накидал небольшую прогу, которая считывает данные с таблици в TreeView и обратно, но по мимо id|name|parent_id есть возможность хранить в TreeView и в таблице какое угодно количество другой информации. Если интересно, то пиши на anton_l97@mail.ru, пришлю исходники (правда я использовал CBuilder 6, но хрен редьки не страшнее)
Anatoly Podgoretsky (2007-10-17 20:33:00) [10]> Ksander (17.10.2007 13:07:24) [24]
Поздно
Ksander (2007-10-17 13:23:00) [11]Ну да ладно самому рыть надо
Ksander (2007-10-17 13:21:00) [12]Понятно по 1.2 А бегать рекурсивно не умею
clickmaker (2007-10-17 13:12:00) [13]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:07:00) [14]Я пошутил
Reindeer Moss Eater (2007-10-17 13:06:00) [15]В том, что про лабораторку проболтался.
Щас тебя пинать будут.
Ksander (2007-10-17 13:05:00) [16]В чём прокололся? куда бежать?
Reindeer Moss Eater (2007-10-17 13:03:00) [17]прокололся ты чувак. беги скорее
Ksander (2007-10-17 13:02:00) [18]Я же не прошу вас решить я прошу по крайне мере навести на мысли
какими свойсствами и методами TreeVıew оперировать, а DBTree не подходит лаб раб гласит что нужно сделать через тривиев.
ЮЮ (2007-10-17 12:58:00) [19]> Ну помогите уважаемые неужели эта задача нерешаема
Решаема. Но
1) почему за решение взялся ты.
2) почему теперь перекладываешь на нас.
Поищи компонент типа DBTree. Вчера, кстати, эта тема уже поднималась.
Ksander (2007-10-17 12:58:00) [20]Ну как построить таблицу непонятно