Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение данных в виде дерева 
:(
    Опции темы
Kbl4AH
Дата 29.7.2008, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Здравствуйте, уважаемые!

В очередной раз столкнулся с проблемой и не знаю каким образом ее решить.
В таблице есть 2 поля: Поле1 - отдел, Поле2 - подотдел, т. е. если в записи Поле1 заполнено, а Поле2 - null, то это отдел, а если оба поля заполнены (причем значения в Поле1 одинаковые), то это подотдел.

Мне нужно, чтобы выбранные данные отображались в виде дерева (как в проводнике), т.е. выбрал отдел, нажал "+"  - открылся список подотделов этого отдела, соответственно, нажал "-" - список закрылся.

Подскажите, пожалуйста, каким образом это можно реализовать?
Я так понимаю с помощью компонента TtreeView? А каким образом привязать это к выборке? Выборку делаю при помощи OracleQuery или OracleDataSet.

Заранее благодарен всем откликнувшимся!
PM MAIL ICQ   Вверх
Poseidon
Дата 29.7.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Kbl4AH @  29.7.2008,  08:51 Найти цитируемый пост)
Я так понимаю с помощью компонента TtreeView? А каким образом привязать это к выборке?
В простейшем случае можно и TTreeView. Если нужно что-то более "интересное", лучше TVirtualView.

А с привязкой вообще не пойму какие проблемы. Получаешь выборку. Формируешь первый уровень веток по "Поле1". Далее смотришь, если есть "Поле2", то формируешь второй уровень
В TTreeView первый уровень создается так:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1.Items.Add(nil, 'Первый уровень');
end;

второй так:
Код

procedure TForm1.Button2Click(Sender: TObject);
begin
TreeView1.Items.AddChild(TreeView1.Items.Item[2],'Второй уровень третьей ветки'); 
// в Item счет идет с нуля, поэтому там 2, но ветка заполнится третья.
// Думаю понятно, что для выполнения этого кода третья ветка должна существовать, 
// иначе будет ошибка
end;



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 29.7.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



А как перейти на следующую ветку первого уровня, а то он у меня весь список второго уровня пихает в первую ветку по ниспадающей(((

Это сообщение отредактировал(а) Kbl4AH - 29.7.2008, 11:01
PM MAIL ICQ   Вверх
Poseidon
Дата 29.7.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



С конца smile


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 30.7.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



А как получить значение выделенного элемента дерева?
PM MAIL ICQ   Вверх
Poseidon
Дата 30.7.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Ну так это... так smile

Код

TreeView1.Selected.Text



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 30.7.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Спасибо!
PM MAIL ICQ   Вверх
holodnaya
Дата 30.7.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



У меня возник следующий вопрос:
я выбираю элемент дерева, а потом фокус переходит на другой компонент и выделение выбранного элемента дерева снимается, а мне нужно чтобы оно оставалось. Подскажите, пожалуйста, как мне это сделать.
Подсказываем, не стесняемся;)
PM MAIL   Вверх
Poseidon
Дата 30.7.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(holodnaya @  30.7.2008,  14:07 Найти цитируемый пост)
Подсказываем, не стесняемся;)
Яй, я бы с радостью, да только вот как-то стеснительно  smile 

Код
TreeView1.HideSelection:= False;


PS. Судя по последним двум вопросам, кому-то нужно почитать хоть основы про этот компонент.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
holodnaya
Дата 30.7.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Чмоки тя в щечку, Poseidon'чик smile

Это сообщение отредактировал(а) holodnaya - 30.7.2008, 14:39
PM MAIL   Вверх
holodnaya
Дата 30.7.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



И ещё один вопрос назрел.
Существует три уровня записей в дереве. Можно ли узнать к какому уровню принадлежит выбранная запись.
Подскажите, пожалуйста, как это сделать.
PM MAIL   Вверх
Rennigth
Дата 30.7.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



holodnaya, 
Код

TreeView.Selected.Level


 smile 

Цитата(holodnaya @  30.7.2008,  14:27 Найти цитируемый пост)
Чмоки тя в щечку, Poseidon'чик 

ахтунг!!!  smile

Добавлено через 3 минуты и 5 секунд
 smile 
Цитата(Rennigth @  30.7.2008,  15:23 Найти цитируемый пост)
ахтунг!!!    

а не, не ахтунг, ник не прочел нормально smile
он + она =  smile, все ясно smile


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Poseidon
Дата 30.7.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Rennigth @  30.7.2008,  15:23 Найти цитируемый пост)
он + она = smile , все ясно
 Rennigth, свалацуга  smile 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Rennigth
Дата 30.7.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Poseidon @  30.7.2008,  15:32 Найти цитируемый пост)
Rennigth, свалацуга    

 smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
holodnaya
Дата 30.7.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Rennigth, теяб тоже чмоки в щечку  smile  )))
Спасибо
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.