Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2010, 10:30   #1
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию Определение номера итема относительно корневого раздела в TreeView

Здравствуйте.
БД состоит из 4 полей(акцес): id p_id name abindex
примерно такого вида таблица где хранятся данный для построения дерева.

1 0 Первый 0
2 0 Второй 1
3 0 Третий 2
4 0 Четвёртый 3
5 0 Пятый 4
6 2 Подраздел21
7 6 Подраздел 211


у меня для связи бд и обьектов тривив есть поле abindex
в него я записываю абсолют индекс раздела при его добавлении
чтобы получить этот абиндекс нужно выделить добавленый раздел
т.е. если строить из приведёной выше таблицы будит так

Первый
Второй
Подраздел21
Подраздел211
Третий
Четвёртый
Пятый

ЧТобы выделить "Подраздел211" мне надо написать так All.Items.Item[All.Selected.Index].Item[0].Item[0]Selected:=true;
И только после того как я ег опрограмно выделяю могу получить абиндекс

Соотвествено я не знаю сколько подразделов добавит пользователь и такой вид естествено не подойдёт
All.Items.Item[All.Selected.Index].Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]
..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]
..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]
..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]
..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]
..Item[i]..Item[i]..Item[i]..Item[i]..Item[i]..Item[i].Selected:=true;

как выдти из этого?)

У меня есть соображения некоторые, например я смогу по бд узнать какой он посчёту начиная от корня, но опять же как выделить, возможно так: переменая присвоить до родителя и обрашатся Тривив.Родитель.item[i].selected:=true;

Но моих познаний ксожалению нехватает для этой реализации...
Прошу помоши знающих людей...

Последний раз редактировалось Stilet; 07.04.2010 в 11:19.
Dozent вне форума Ответить с цитированием
Старый 07.04.2010, 11:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну ты барбос.... Зачем постишь код который не вмещается в экран? Не у всех мониторы 160:9.
По поводу темы - Ты получаешь 211
Проходишь по этому массиву номеров:
Код:
 var n:TTreeNode;
 begin
  n:=Начальной ветке;
  for i:=1 to 3 do begin
   if n.Count>=Элемент[i] then
     n:=n.Items[Элемент[i]];
  end;
В результате у тя в n нужный элемент
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2010, 11:55   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

All.Selected.Item[i].Selected:=true; вот решение нужное мне. Спасибо большое!
Dozent вне форума Ответить с цитированием
Старый 07.04.2010, 12:06   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
All.Selected.Item[i]
Но ты учти i - это абсолютный индекс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2010, 16:44   #5
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Да вроде не абсолютный... Пока работает как надо...
Dozent вне форума Ответить с цитированием
Старый 07.04.2010, 16:53   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ну да...
Я спутал.
Впрочем если Selected - верхняя ветка то может быть абсолютным
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2010, 17:11   #7
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Не не там ведь как идёт
item[0].item[0].item[1]

1
__11
___111
___112(элемент 0:0:1)

Ведь так помойму тут идёт, а абсолутный это из другой немножко серии
Dozent вне форума Ответить с цитированием
Старый 07.04.2010, 17:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не буду спорить, главное что ты разобрался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД +Treeview определить номер родительского раздела Dozent Компоненты Delphi 14 05.04.2010 13:04
Поиск подстроки в MEMO(определение номера) DarkMan-4ever Помощь студентам 4 20.12.2009 17:10
Определение серийного номера логического устройства Raikhman Microsoft Office Excel 5 09.02.2009 17:48
В чем проблема появления символа & в начале каждого заголовка итема созданного в рунтайте раздела меню? SkAndrew Общие вопросы Delphi 17 10.08.2008 21:44
Определение номера телефона xpress Общие вопросы по Java, Java SE, Kotlin 6 29.04.2008 20:02