Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.044 c
15-1211204540
LightRipple
2008-05-19 17:42
2008.06.29
Блокировка логических дисков


4-1192474636
alek
2007-10-15 22:57
2008.06.29
Рисование в, к примеру, Paint


15-1210936135
Kolan
2008-05-16 15:08
2008.06.29
SQLite не может получить доступ на Висте, почему?


10-1146918480
Dmitrij_K
2006-05-06 16:28
2008.06.29
IHTMLDocument2 получение всех ссылок


15-1210977956
Draw
2008-05-17 02:45
2008.06.29
Чем заменить Canvas.CopyRect ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский