Drag-and-Drop in einer TreeView - da ist das Vertauschen zweier Knoten eher unüblich. Vielleicht möchtest du mit diesem Code ein wenig experimentieren?
Delphi-Quellcode:
procedure TDemoForm.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
var
HT: THitTests;
AttachMode: TNodeAttachMode;
TargetNode: TTreeNode;
begin
HT := TreeView.GetHitTestInfoAt(X, Y);
TargetNode := TreeView.GetNodeAt(X, Y);
if (htOnItem in HT) then
begin
AttachMode := naAddChild;
TargetNode.Expand(False);
end else if (htOnIndent in HT) then
AttachMode := naInsert
else if (htOnRight in HT) then
AttachMode := naAdd
else
Exit;
with Sender as TTreeView do
Selected.MoveTo(TargetNode, AttachMode);
end;
Grüße vom marabu