![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Здравствуйте, уважаемые!
В очередной раз столкнулся с проблемой и не знаю каким образом ее решить. В таблице есть 2 поля: Поле1 - отдел, Поле2 - подотдел, т. е. если в записи Поле1 заполнено, а Поле2 - null, то это отдел, а если оба поля заполнены (причем значения в Поле1 одинаковые), то это подотдел. Мне нужно, чтобы выбранные данные отображались в виде дерева (как в проводнике), т.е. выбрал отдел, нажал "+" - открылся список подотделов этого отдела, соответственно, нажал "-" - список закрылся. Подскажите, пожалуйста, каким образом это можно реализовать? Я так понимаю с помощью компонента TtreeView? А каким образом привязать это к выборке? Выборку делаю при помощи OracleQuery или OracleDataSet. Заранее благодарен всем откликнувшимся! |
|||
|
||||
| Poseidon |
|
||||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
А с привязкой вообще не пойму какие проблемы. Получаешь выборку. Формируешь первый уровень веток по "Поле1". Далее смотришь, если есть "Поле2", то формируешь второй уровень В TTreeView первый уровень создается так:
второй так:
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||||
|
|||||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
А как перейти на следующую ветку первого уровня, а то он у меня весь список второго уровня пихает в первую ветку по ниспадающей(((
Это сообщение отредактировал(а) Kbl4AH - 29.7.2008, 11:01 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
С конца
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
А как получить значение выделенного элемента дерева?
|
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Ну так это... так
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Спасибо!
|
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
У меня возник следующий вопрос:
я выбираю элемент дерева, а потом фокус переходит на другой компонент и выделение выбранного элемента дерева снимается, а мне нужно чтобы оно оставалось. Подскажите, пожалуйста, как мне это сделать. Подсказываем, не стесняемся;) |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Яй, я бы с радостью, да только вот как-то стеснительно
PS. Судя по последним двум вопросам, кому-то нужно почитать хоть основы про этот компонент. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Чмоки тя в щечку, Poseidon'чик
Это сообщение отредактировал(а) holodnaya - 30.7.2008, 14:39 |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
И ещё один вопрос назрел.
Существует три уровня записей в дереве. Можно ли узнать к какому уровню принадлежит выбранная запись. Подскажите, пожалуйста, как это сделать. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
holodnaya,
ахтунг!!! Добавлено через 3 минуты и 5 секунд а не, не ахтунг, ник не прочел нормально он + она = -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Rennigth, теяб тоже чмоки в щечку
Спасибо |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Зравствуйте, уважаемые!
Сегодня возникла ещё одна проблема с деревяьми. Существует 2 дерева: одно с названиями подразделений и отделов, другое с соответсвующими им кодами. Дерево с кодами пользователь не видит, но при выборе подразделения или отдела в первом дереве необходимо считать его код из второго дерева. То есть, позиция во втором дереве должна равняться выбранной в первом дереве позиции. Скажите, пожалуйста, как это сделать. Или, может быть, существуют иной способ считать код подразделения и отдела, используя толко одно дерево? |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
М...В подузел писать ещё и коды необходимые, просто не отображать - а читать, когда будет необходимо...
-------------------- Подпись >> /dev/null |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Как это - писать, но не отображать? Часть строки видима, а часть - нет? Как можно получить значение из дерева по абсолютному индексу? Это сообщение отредактировал(а) Kbl4AH - 31.7.2008, 09:33 |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Ну так - дерево - ты в узел отдел, в подузлы отдела остальную инфу. VirtualTree юзай, а из него передавай нужные тебе данные TreeView
-------------------- Подпись >> /dev/null |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Не, мне нужно значение по абсолютному индексу получить...
P.S. А виртуалтри в каком наборе компонентов находится? Это сообщение отредактировал(а) Kbl4AH - 31.7.2008, 09:54 |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Свойство TTreeNode: property Absolutelndex: Integer; Возвращает абсолютный индекс узла (с учетом всех подузлов)
-------------------- Подпись >> /dev/null |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Абсолютный индекс я сам догадался как получить=)
Как мне теперь по не му значение получить? |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
-------------------- Подпись >> /dev/null |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
Alkash, ты чего раньше молчал?
С меня "Тройной", пасиб! |
|||
|
||||
| Alkash |
|
|||
|
коллекционер жизни ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 5.7.2004 Где: / Репутация: нет Всего: нет |
Да не за что)
-------------------- Подпись >> /dev/null |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
у TreeNode есть чудесное свойство (наверняка тобой неиспользуемое) StateIndex (видно в том числе и в конструкторе). в нем и храни идентификаторы. -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Это не стандартный компонент. Но очень нужный если собираешься писать приложения со сложными деревьями (и не только с деревьями). -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
не могли бы вы ещё объяснить, как не вручную (не используя контсруктор) записать значение в StateIndex, например в цикле, когда и создаются записи в дереве |
|||
|
||||
| pseud |
|
||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
приведи свой код создания узлов дерева и я его дополню Добавлено через 6 минут и 21 секунду например так
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||
|
|||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
А как, например, получить значение 2 веточки, 3 подветочки?
|
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
pseud, спасибо большое, очень помог )
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |