Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.29;
Скачать: 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 вся ветка

Текущий архив: 2008.06.29;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.085 c
2-1212269187
Randew
2008-06-01 01:26
2008.06.29
Помогите найти ошибку, пожалуйста...


11-1190364115
grim
2007-09-21 12:41
2008.06.29
по поводу создания форм


15-1210451486
Германн
2008-05-11 00:31
2008.06.29
Любимая операционная система NASA


15-1210249547
@!!ex
2008-05-08 16:25
2008.06.29
Подскажите игру?


15-1210164451
NailMan
2008-05-07 16:47
2008.06.29
Вынужденно перешел на платформу Intel :-((





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