Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизСвязать данные с TtreeView ом? Найти похожие ветки
← →
MaryM © (2008-06-02 14:18) [0]Задача следующая: парсится с помощью simplexml xml-файл, строится дерево treeView и нужно теперь как-то связать узлы дерева treenode с узлами xml-документа. Вычитала, что вроде бы в свойство Data можно ставить что угодно, но мне ругается на несовпадение типов данных - как этим свойством пользоваться и возможно ли это? Или нужно расширять компонент, добавлять к свойствам ttreenode еще одно, в которое можно будет вписать нужный тип? Тут возникает сложность - как вписывать свойства в обычные компонент - понятно, в treeview добавить свойство можно, а в treenode как?
Короче, помогите, люди добрые...
← →
Palladin © (2008-06-02 14:20) [1]
> Вычитала, что вроде бы в свойство Data можно ставить что
> угодно
свойству Data можно присваивать все, что угодно, но только если оно типа Pointer...
← →
Ega23 © (2008-06-02 14:22) [2]Записать
TTreeNode.Data := IXLMNode
ПрочитатьXMLNode := IXMLNode(TTreeNode.Data)
Вроде так.
← →
Сергей М. © (2008-06-02 14:22) [3]
> мне ругается на несовпадение типов данных
Показывай код ..
← →
Сергей М. © (2008-06-02 14:29) [4]
> Ega23 © (02.06.08 14:22) [2]
В кустах может поджидать засада, если XMLNode - локальный идентификатор
← →
Ega23 © (2008-06-02 14:41) [5]
> В кустах может поджидать засада, если XMLNode - локальный
> идентификатор
Может, не спорю.
← →
MaryM © (2008-06-02 15:09) [6]Вот на
TTreeNode.Data := XMLNode
и ругается, что IXMLNode - это не Pointer.
Это можно как-то перевести в поинтер?
Другой вариант (имхо, более правдоподобный) как добавить в TTreeNode свойство (например, XML), в которое можно будет записывать IXMLNode? Т. е. общий механизм - куда что нужно дописать, чтобы добавить к TTreeNode свойство? Нужно создать новый компонент на основе TTreeView? А там как вписывать что-то в TTreeNode?
← →
Сергей М. © (2008-06-02 15:12) [7]
> Это можно как-то перевести в поинтер?
Можно.
TTreeNode.Data := Pointer(XMLNode);
Но тебя может поджидать засада.
> Нужно создать новый компонент на основе TTreeView?
Не обязательно.
← →
Palladin © (2008-06-02 15:22) [8]думаю спасет искусственное увеличение... ээ.. количества ссылок :)
XMLNode._AddRef
и потом на OnDelete, столь"же искусственное, его уменьшение )
← →
Reindeer Moss Eater © (2008-06-02 15:31) [9]а не лучше ли хранить ключевые атрибуты вместо ссылок на ноды?
а то ведь открыл перед загрузкой в дерево и так и держи открытым чтобы ссылки не протухли.
← →
MaryM © (2008-06-03 09:30) [10]Всем спасибо, особенно Сергею М., разобралась
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c