![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBTreeView [D5, MSSQL, Oracle]
3asys © (2002-04-02 12:35:00)Добрый день, подскажите, где реально можно взять компонент а la DBTreeView (можно несколько -) )
С Уважением, Александр
Sergey13 (2002-04-03 10:35:00) [1]2Aleksandr © (02.04.02 12:46)
>Если тот, который одну таблицу выстраивает по Id-OwnerID, то таких нет.
Ну зачем же так категорично. Их есть. Я давно и с успехом юзаю DbTreeView из библиотеки Polaris ( http://polesoft.da.ru). Именно так она и работает. И неплохо. Там кстати есть даже DbLookupTree и DbLookupComboTree.
23asys (02.04.02 12:55)
Насчет редактирования. Если ты имеешь в виду "прямого" редактирования дерева - не пробовал, не знаю, и думаю это проблематично. А обработчиков типа "Добавить узел/подузел" создавай сколько влезет.
ЗЫ
Единственный недостаток - медленно работает на больших объемах. Но это беда скорей не конкретной библиотеки а вообще "деревянных" методов. Для приемлемой скорости стараюсь больше 200-300 итемов не пихать в деревяшку.
Nikolay M. (2002-04-02 18:11:00) [2]А я пользую RADBTreeView из RALib.
3asys (2002-04-02 13:52:00) [3]> Aleksandr
> Lusha
Спасибо большое. Попробую.
С Уважением, Александр
Aleksandr (2002-04-02 13:20:00) [4]Ну, я не совсем понял, в чем возникла проблема... Структура таблицы организовывается очень просто:
ID ParentID [Остальные данные]
В свойство Дата итемов при создании таблицы вписываете ее Id. Верхний уровень имеет ParentID=0, остальные - соответственно (не номера уровней, а уникальные идентификаторы главного в своей ветке). И при изменении итемы Дерева накладываете метод скроллирования таблицы по Data этой итемы. А если какую-то ветку перенесли на другой уровень, так дочерним итемам дела до этого вообще нет - они помнят ИД своего начальника, а у него меняется один-единственный ParentID...
Вот, нашел я какой-то старый исходничек, не помню, на каком этапе он работает... Лови и смотри...
Lusha (2002-04-02 13:04:00) [5]А что Вы использовали для синхронизации TTreeView.Items и набора данных. Уж не свойство TTreeNode.AbsoluteIndex часом? Всего, что Вы перечислили ЛЕГКОдобиться если в свойстве TreeNode.Data хранить закладку TBookmarkStr на соответствующую строку...
3asys (2002-04-02 12:55:00) [6]> Aleksandr
Мне нужен компонент, который был бы способен загрузить дерево из таблицы, позволить его отредактировать и сохранить в таблицу. Я писал подобную штуку (в разных вариациях) на основе TTreeView, но при редактировании загруженного дерева трудно добиться корректного изменения данных в таблице, если перезаписывать таблицу нельзя. Например, каждый узел имеет строго определенный ID, который не должен меняться с момента создания узла и до его уничтожения. Этого трудно добиться, если например производится перенос ветки или редактирование названия узла. Поэтому хотел посмотреть, может у кого-то это решается. Буду благодарен за исходники.
С Уважением, Александр
Aleksandr (2002-04-02 12:46:00) [7]Смотря какой тебе нужен. Если тот, который связывает мастер-детайл, то таких на torry.net целые пачки... Если тот, который одну таблицу выстраивает по Id-OwnerID, то таких нет. Мне в свое время пришлось самому такую компоненту рисовать. Если надо, могу покопать исходники, кину тебе код - посмотришь, как я делал, свое нарисуешь.