Главная страница
    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.04 c
2-1212396147
Сергей
2008-06-02 12:42
2008.06.29
Как взять все записи четные пяти?


6-1189674294
istok
2007-09-13 13:04
2008.06.29
Обзор сетевого окружения...


2-1212580075
123-ий
2008-06-04 15:47
2008.06.29
Skype


2-1212061268
Max
2008-05-29 15:41
2008.06.29
Открыть файл API


8-1182507646
leonidus
2007-06-22 14:20
2008.06.29
Ищу библиотеку для работы с RAW-файлами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский