Вниз
Скачать: CL | DM;

Связать данные с 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
2-1212353489
Blue Dragon
2008-06-02 00:51
2008.06.29
Инвертировать Нумлок и Капслок


15-1211185363
barakuda
2008-05-19 12:22
2008.06.29
Нужна процедура отправки письма за деньги


2-1212121612
Dymok
2008-05-30 08:26
2008.06.29
Как узнать путь к каталогу документов пользователя


15-1211179167
data
2008-05-19 10:39
2008.06.29
Подскажите форумы/сайты по дачному строительству и мелиорации?


15-1211182046
User1
2008-05-19 11:27
2008.06.29
Mini Host




   Наверх