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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2010, 23:43   #1
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
Вопрос TreeList (TreeView) - как создать древовидный список

Как создать древовидный список в TreeList (TreeView)? Нужно создать список на подобие данного:

1
|-1.1
|-1.2
2
|-2.1
|-2.2

и т.д...

Только с особенностью, что данный список будет создаваться в цикле:
Код:
for i:=1 to n do begin
  {создание записи первого уровня}
  for j:=1 to m do begin
    {создание доченей записи второго уровня}
  end;
end;
Просто уже измучился, ничего толкового не могу добиться...
лучший подарок женщине-программисту
chandrasecar вне форума Ответить с цитированием
Старый 07.10.2010, 08:05   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  TN : TTreeNode;
  I, J, M, N : Integer;
begin
  M := 2; N := 2;
  for I := 1 to M do begin
    TN := TreeView1.Items.AddChild(nil, IntToStr(I));
    for J := 1 to N do begin
      TreeView1.Items.AddChild(TN, IntToStr(I)+'.'+IntToStr(J));
    end;
  end;
end;
Скандербег вне форума Ответить с цитированием
Старый 07.10.2010, 10:07   #3
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
По умолчанию

Спасибо! Теперь в Дельфи я стал еще чуточку опытнее!

А как теперь можно получить индекс выделенной строки и подстроки? Мне нужно связать TreeView с БД. Ведь каждая строчка имеет индекс, записи в главных строках и их номера совпадают с БД. Дочерние, если их индексацию начинать с 0 или 1 в каждом родителе, то тоже будут совпадать.

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

Последний раз редактировалось chandrasecar; 07.10.2010 в 10:14.
chandrasecar вне форума Ответить с цитированием
Старый 07.10.2010, 10:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще, я бы делал не так.
У каждого TreeItem есть свойство Data. В базе пусть будет ключевое поле, значение которого будет перекатываться в этот Data каждой ветке, таким образом TreeView.Selected.Data будет связано с записью в базе, и не надо ничего выискивать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.10.2010, 11:33   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Мне нужно связать TreeView с БД
А почему бы не сделать наоборот. Создать в БД "древовидную" таблицу и выводить ее в DBTreeView.
_SERGEYX_ вне форума Ответить с цитированием
Старый 09.10.2010, 00:21   #6
chandrasecar
Форумчанин
 
Аватар для chandrasecar
 
Регистрация: 03.10.2008
Сообщений: 180
По умолчанию

Спасибо, но я знаю как мне лучше.

Так как все-таки получить индекс выделенной строки в TreeView? И этот индек будет определять дочерняя запись или нет?
лучший подарок женщине-программисту
chandrasecar вне форума Ответить с цитированием
Старый 09.10.2010, 06:36   #7
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Stilet уже сказал как связать строки из таблицы базы с элементами TReeView.
И, если значение индекса будет находится в свойстве Data, то это значение можно получить так:
Код:
  Ind := Integer(TreeView1.Selected.Data);
//а узнать дочерний ли это элемент так:
  if TreeView1.Selected.Level > 0 then
    //дочерний элемент

Последний раз редактировалось Скандербег; 09.10.2010 в 07:00.
Скандербег вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать выпадающий список???? Agapov_stas Microsoft Office Access 4 23.04.2011 13:27
как создать раскрывающийся список с условием _Set_ Microsoft Office Excel 2 20.01.2010 17:50
Как создать список? Интересующаяся26 Microsoft Office Excel 40 28.05.2009 17:46
Как создать выпадающий список в ячейке DBGridEh? Garacio2 БД в Delphi 4 25.10.2008 14:04
древовидный список с чекбоксами linarka Общие вопросы Delphi 4 26.06.2007 10:04