В TtreeView1.DragDrop я использую заявления, такие как(Delphi TTreeView), как перетащить/узел падение ниже (или выше), выбранный узел
targetnode := TreeView1.GetNodeAt(x,y);
...
TreeView1.Selected.MoveTo(targetnode , naInsert) ;
переместить узел с помощью мыши и вставить его перед т.е. выше, существующий узел на одном уровне.
Id нравится изменять поведение, так что, если я перетаскиваю вниз, узел перемещается ниже цели, но если я перетаскиваю его вверх, он перемещается вверху цели (в противном случае я могу перетащить в новое нижнее положение, но не новый верх или наоборот). Рода структуры я пытаюсь это
targetnode := TreeView1.GetNodeAt(x,y);
...
if DraggedItem.Index > targetnode.Index then //we are dragging upwards, insert before
TreeViewStructure.Selected.MoveTo(targetnode , naInsert)
else //we are dragging downwards, insert after
TreeViewStructure.Selected.MoveTo(targetnode , ???) ;
, но я не могу найти постоянную TNodeAttachMode, который вставляет родственный после целевого узла. Константы TNodeAttachMode приведенная здесь http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/ComCtrls_TNodeAttachMode.html являются ...
naAdd: The new or relocated node becomes the last sibling of the other node.
naAddFirst: The new or relocated node becomes the first sibling of the other node.
naInsert:The new or relocated node becomes the sibling immediately before the other node.
naAddChild:The new or relocated node becomes the last child of the other node.
naAddChildFirst:The new or relocated node becomes the first child of the other node.
, но ни один из них не относятся к новому последнему собрату.
Могу ли я делать то, что хочу? если да, то как?
Но нет ни одного узла после последнего! Поэтому, если у меня есть A, B, C, D, E, и я хочу изменить порядок, чтобы стать B, C, D, E, A, вы говорите, что я не могу перетащить «А» на новое место? Могут ли мои отдельные параметры отдельно перетаскивать каждый другой узел (B, C, D, E) до «A» или сначала перетаскивать «A» вниз между «D» и «E», а затем в отдельной операции перетаскивать «E» до «D» и «A»? - Я вижу, что это путает многих пользователей. – user3209752
(У меня есть небольшая программа под названием «HelpNDoc», которая отображает заголовки разделов документации в виде дерева и позволяет перетаскивать заголовок вправо или снизу вверх, чтобы это было возможно.) – user3209752
Для последнего узла используйте 'naAdd ' –