Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
14-35020
stone
2003-05-26 16:14
2003.06.12
Книги по ERWin 4.0


14-34997
kir_kul
2003-05-26 12:49
2003.06.12
Удаление двойных записей


14-35014
b_baranov
2003-05-26 17:21
2003.06.12
Пакеты Erwin, xCase, RoboCase


14-35032
MalkoLinge
2003-05-26 17:26
2003.06.12
Люди ! В РСДН 2 статьи о Делфи


14-34969
N119
2003-05-28 13:18
2003.06.12
LOL! Кошки чудят.




   Наверх