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