Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

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



Ответ
 
Опции темы
Старый 26.10.2017, 16:15   #1
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
Печаль TreeView и DBgrid

Не получается сделать следующее: Построение дерева идет в TreeView из базы данных, нужно чтобы при щелчке на ветку, открывались связанные данные в DBgrid (отображались). Эти данные связанны по id, тобишь по идее надо как то назначить TreeView - параметр Node -> id из базы, и при щелчке чтобы в DBgrid было отображение...

Тобишь нужно создать построение дерева с назначением этих параметров...

Последний раз редактировалось Dryid466; 26.10.2017 в 16:19.
Dryid466 вне форума   Ответить с цитированием
Старый 26.10.2017, 16:19   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,974
Репутация: 5965
По умолчанию

Засунь в свойство Data этот id, как Pointer(Id). Считывай как Integer(Data)
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 26.10.2017, 18:07   #3
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
По умолчанию

А как точнее в виде кода?
Dryid466 вне форума   Ответить с цитированием
Старый 26.10.2017, 18:12   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,021
Репутация: 5118
По умолчанию

Цитата:
Сообщение от Dryid466 Посмотреть сообщение
Построение дерева идет в TreeView из базы данных
покажите в виде кода.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 26.10.2017, 18:19   #5
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
По умолчанию

У меня на данный момент вот таким образом строится дерево
Код:

  
  if tRazdels.IsEmpty then Exit;

  TreeView1.Items.Clear;

  Q1.SQL.Clear;
  Q1.SQL.Add('select * from Razdels where R_Parent=0');
  Q1.Open;
  if Q1.IsEmpty then Exit; 
  while not Q1.Eof do begin
    TreeView1.Selected := nil;
    TreeView1.Items.Add(TreeView1.Selected,
Q1.FieldByName('R_Name').AsString);
    Q1.Next;
  end; //while

  Q1.SQL.Clear;
  Q1.SQL.Append('select r.R_Name, d.R_Name '+
                    'from Razdels r, Razdels d '+
                    'where r.R_Num=d.R_Parent');
  Q1.Open;
  if Q1.IsEmpty then Exit; 
  Q1.First;
  while not Q1.Eof do begin TreeViewAddChild(Q1.Fields[0].AsString, Q1.Fields[1].AsString);
    Q1.Next;
  end; //while

 
  TreeView1.FullExpand;


Последний раз редактировалось Dryid466; 26.10.2017 в 18:34.
Dryid466 вне форума   Ответить с цитированием
Старый 26.10.2017, 18:30   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,021
Репутация: 5118
По умолчанию

Цитата:
Сообщение от Dryid466 Посмотреть сообщение
TreeViewAddChild:
Q1.SQL.Clear;
вот в этой строчке реально двоеточие после TreeViewAddChild ?!!

попробуйте ознакомиться с TTreeNode.Data Property

Последний раз редактировалось Serge_Bliznykov; 26.10.2017 в 18:36.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 26.10.2017, 18:35   #7
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
По умолчанию

нет нет, это комментарий был, этой строчки в коде нет, убрал в коде выше
Dryid466 вне форума   Ответить с цитированием
Старый 26.10.2017, 18:38   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,021
Репутация: 5118
По умолчанию

я добавил ссылочку. там есть пример.
Serge_Bliznykov на форуме   Ответить с цитированием
Старый 26.10.2017, 19:11   #9
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
По умолчанию

жалко только что тут все по отдельности в примере))
Dryid466 вне форума   Ответить с цитированием
Старый 30.10.2017, 12:05   #10
Dryid466
Пользователь
 
Регистрация: 04.06.2016
Сообщений: 10
Репутация: 10
По умолчанию

Код:

 
  if tRazdels.IsEmpty then Exit;
 
  TreeView1.Items.Clear;
 
  Q1.SQL.Clear;
  Q1.SQL.Add('select * from Razdels where R_Parent=0');
  Q1.Open;
  if Q1.IsEmpty then Exit;  
 
  while not Q1.Eof do begin
    TreeView1.Selected := nil;
    //TreeView1.Items.Add(TreeView1.Selected,Q1.FieldByName('R_Name').AsString);
    TreeView1.Items.AddChildObject(nil,Q1.FieldByName('R_Name').AsString,Pointer(Q1.FieldByName('R_Num').AsInteger));
    Q1.Next;
  end; //while

 
  Q1.SQL.Clear;
  Q1.SQL.Append('select r.R_Name, d.R_Name '+'from Razdels r, Razdels d '+ 'where r.R_Num=d.R_Parent');
  Q1.Open;
  if Q1.IsEmpty then Exit;  
  Q1.First;
  while not Q1.Eof do begin

  TreeViewAddChild(Q1.Fields[0].AsString, Q1.Fields[1].AsString);
 
    Q1.Next;
  end; //while

 
  TreeView1.FullExpand;

Назначение TreeNode выполняется успешно, но только для главного узла, а что на счет дочерних, не выходит, в чем косяк?
Dryid466 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DbGrid + TreeView + CheckBox tarakan1983 БД в Delphi 13 03.12.2015 23:45
Отображение данных в DBGrid через TreeView nagi12-02 C++ Builder 0 17.01.2014 11:20
treeview с dbgrid Romium БД в Delphi 5 13.04.2013 08:10
DbGrid и Treeview c DbRichEdit ch1pah1 БД в Delphi 1 13.01.2012 05:47
Выборка в DBGrid по выбору узла в TreeView WhiteDemon БД в Delphi 13 17.02.2011 20:29




23:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


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

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10