procedure TFormTestTreeView.TreeViewDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if Sender is TTreeView then Accept := True;
end;
procedure TFormTestTreeView.TreeViewDragDrop(
Sender, Source: TObject; X, Y: Integer
);
var TargetNode, SourceNode, NewNode : TTreeNode;
begin
TargetNode := TTreeView(Sender).GetNodeAt(X,Y);
SourceNode := TTreeView(Sender).Selected;
if TargetNode = nil then
TTreeView(Sender).EndDrag(False)
else
SourceNode.MoveTo(TargetNode, naAddChild);
end;
It moves the textitem but not the ImageIndex and StateIndex. The image
doesn't move with it. Why not ? And how about the
TTreeNode.Data-pointer? Although I only need the StateIndex.
Fons.
procedure ToggleState(TreeNode : TTreeNode);
var StateIndex : integer;
begin
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;
procedure MoveTreeNodeTo(TreeNode, Destination : TTreeNode; Mode :
TNodeAttachMode);
begin
TreeNode.MoveTo(Destination, naAddChild);
ToggleStates(TTreeView(TreeNode.TreeView));
TreeNode.TreeView.Invalidate;
end;
Fons.