Форум: "Основная";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
ВнизTreeView Найти похожие ветки
← →
romeomd (2003-05-31 13:41) [0]Всем привет.Подскажите пожалуйста как можно реализовать чтобы элементы TreeView можно было перемещать по дереву, т.е. допустим я выделил элемент нажал кнопочку и он перешел на уровень выше, а тот элемент что был сверху спустился бы вниз. Буду рад любым советам. Спасибо за ранее.
← →
jack128 (2003-05-31 15:08) [1]ну рекурсивно обходи детей того элемента, который ты хочешь перенести и создавай дочерние узлы в том элементе, куда ты хочешь перенести. А потом удаляй исходный узел
В чем проблема, то?
← →
jack128 (2003-05-31 15:10) [2]вообще, если подумать - это решение "в лоб" , конечно, но у меня нет уверенности, что другое решение вообще существует...
← →
uw (2003-05-31 16:08) [3]Строй дерево по новой, а перерисовку временно запрещай.
← →
Forester (2003-05-31 16:47) [4]Пример перемещения элемента без построения структуры заново.
TTreeForm = class(TForm)
Tree:TTreeView;
btnMoveNodeUp:TButton;
procedure btnMoveNodeUpClick(Sender:TObject);
private
...
protected
...
public
procedure DecNodePosition(Node: TTreeNode);
published
...
end;
...
implementation
...
procedure TTreeFrm.DecNodePosition(Node: TTreeNode);
var
index:integer;
NodeParent:TTreeNode;
begin
index:=Node.Index;
if index=0 then exit; //двигать некуда
NodeParent:=Node.Parent;
Node.MoveTo(NodeParent[index-1], naInsert); //собственно
//перемещение
end;
procedure TTreeForm.btnMoveNodeUpClick(Sender: TObject);
begin
DecNodePosition(Tree.Selected);
end;
...
end.
Подобным образом можно двигать и вниз, а также на несколько позиций. Если перемещение связано с внесением изменений в какую либо структуру, которую отображает дерево - процедуру DecNodePosition необходимо дописать.
← →
romeomd (2003-05-31 16:55) [5]
Спасибо всем за советы, они все позволяют реализовать то что мне надо, но я нашел более простое решение, оказывется у узла есть метод MoveTo, вроде этот метод решает мою проблему, сейчас проверю, так ли это :)
← →
romeomd (2003-05-31 16:56) [6]О, как раз мне Forester и код подкинул :) Спасибо :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c