Re: Reordering TreeNodes
- From: Fons <fonzzzNO@xxxxxxxxxxxxxxxxxxx>
- Date: Fri, 21 Mar 2008 17:42:23 +0100
Yes; I already managed; I wrote a procedure using MoveTo.How can I swap (reorder) nodes in an unsorted TreeView.TTreeNode.Moveto. There is a help file, you know.
But I expected just one simple call.
From now on, it is.
[...]SwapNodes(TreeView.Selected);
It does look odd to swap a single node.
Yes; what I wanted is to give the user the possibility to "build" a tree. And "SwapNodes(TreeView.Selected);" is to swap the TreeView.Selected with the next or previous one on the same level in the tree. New:
procedure SwapTreeNodes(Node1 : TTreeNode; Down : boolean = True);
var
Node2 : TTreeNode;
Node1Expanded, Node2Expanded : boolean;
begin
if Node1 = nil then Exit;
if Down then
Node2 := Node1.GetNextSibling
else
Node2 := Node1.GetPrevSibling;
if Node2 = nil then Exit;
Node1Expanded := Node1.Expanded;
Node2Expanded := Node2.Expanded;
if Down then
Node2.MoveTo(Node1, naInsert)
else
Node1.MoveTo(Node2, naInsert);
if Node1Expanded then Node1.Expand(True);
if Node2Expanded then Node2.Expand(True);
Node1.TreeView.Selected := Node1;
ToggleStates(TTreeView(Node1.TreeView));
end;
And don't forget the problem with the StateIndex:
procedure ToggleState(TreeNode : TTreeNode);
var StateIndex : integer;
begin
if not Assigned(TreeNode) then Exit;
StateIndex := TreeNode.StateIndex;
TreeNode.StateIndex := -1;
TreeNode.StateIndex := StateIndex;
end;
procedure ToggleStates(TreeView : TTreeView);
var T : integer;
begin
for T := 0 to TreeView.Items.Count - 1 do
ToggleState(TreeView.Items[T]);
end;
And ... I'd be rich, getting paid for reading the helpfile.
Good! It's what programmers do. (That, and writing code.)
Groetjes,
Maarten Wiltink
Fons.
.
- References:
- Reordering TreeNodes
- From: Fons
- Re: Reordering TreeNodes
- From: Maarten Wiltink
- Re: Reordering TreeNodes
- From: Fons
- Re: Reordering TreeNodes
- From: Maarten Wiltink
- Reordering TreeNodes
- Prev by Date: Re: Reordering TreeNodes
- Next by Date: Re: Listbox + Print
- Previous by thread: Re: Reordering TreeNodes
- Next by thread: Listbox + Print
- Index(es):