Текущий архив: 2008.08.10;
Скачать: CL | DM;
Вниз
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;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.007 c