Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];

Вниз

TreeNode   Найти похожие ветки 

 
IvanS   (2008-07-09 14:53) [0]

Есть дерево TTreeView и отдельный элемент "NewNode" - TTreeNode (вне дерева, отдельной переменной). Как этот элемент грамотно добавить в само дерево, сразу же после текущего выделенного элемента в дереве (Selected)?
Отдельный NewNode также содержит Data, который следует указать и в добавленном элементе.
Мне необходимо иметь возможность добавить NewNode несколько раз, в нескольких разных местах. Проблемы начинаются у меня в том месте, когда я хочу элемент NewNode добавить повторно.

Как необходимо действовать?

Сейчас делаю так:
TreeView.Selected := TreeView.Items.AddNode(NewNode, TreeView.Selected, NewNode.Text, NewNode.Data, naInsert);


 
Palladin ©   (2008-07-09 14:56) [1]


> Проблемы начинаются у меня в том месте, когда я хочу элемент
> NewNode добавить повторно.

а не нужно его добавлять повторно. создавай новый экземпляр.


 
IvanS   (2008-07-09 19:56) [2]

А каким образом это сделать? Я пробовал:
TreeView.Items.AddObject(TreeView.Selected, NewNode.Text, NewNode.Data);

и даже так:
var
 SNode: TTreeNode;
begin
 SNode := TTreeNode.Create(TreeView.Items);
 SNode.Assign(NewNode);
 SNode.Data := NewNode.Data;

 TreeView.Items.Add... (SNode, ...);


Ничего не помогает.

У меня в TreeView.OnDeletion:
if Node.Data <> nil then
 Dispose(PSuperItem(Node.Data));


И если я один из добавленных узлов удаляю, то он удаляет PSuperItem данные, которые удаляются во всех добавленных мною узлов. Из-за этого все перестает функционировать.

Как поступить?


 
Johnmen ©   (2008-07-09 20:06) [3]


>  то он удаляет PSuperItem данные

Насколько видно, их удаляешь ты, а не он.

> удаляются во всех добавленных мною узлов

Естественно, ведь у тебя это указалель на один и тот же объект.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
15-1214198395
Riply
2008-06-23 09:19
2008.08.10
C++ Builder разница между проетами


15-1214233218
AEN
2008-06-23 19:00
2008.08.10
Если бесплатный хостинг


15-1214114732
Kostafey
2008-06-22 10:05
2008.08.10
Just for fun: Почему у Microsoft ничего не выйдет с .Net


2-1215602817
@!!ex
2008-07-09 15:26
2008.08.10
Как узнать количество экземпляров класса?


15-1214082477
Поросенок Винни-Пух
2008-06-22 01:07
2008.08.10
3:1





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