TAdvCheckedTreeView: Unable to move node...

Hi Peter & Bruno,

There is a problem reordering nodes. I explain more here:

https://www.loom.com/share/a23c032a17b7422bbb76b59f52b9c0b2

The label on the node doesn't seem to update. Here's a link to the demo project:

https://www.dropbox.com/s/y86jvytxdwrsqfp/TAdvCheckedTreeView-Reorder.zip?dl=0

Let me know if you have any questions. Hope it can be fixed soon! A patch fix would be appreciated.

Thanks,

Steve

Hi Steve,

Thank you for the video and detailed analysis. We have changed the MoveTo so the destination parameter should always be assigned. There was an issue that when passing nil to the destination node that the treeview would lock up as well as moving it to itself, so the MoveTo is actually more strict that it was before. The MoveTo is actually used to move a node inside another child or parent node, whenever the parameter is nil, nothing will happen. The move operation that you want to use is actually basically an index change on collection level so to have the same effect, you can use the following code instead (for the upward movement):

var
  i: Integer;
begin
  i := ctvColumns.SelectedNode.Index;
  ctvColumns.SelectedNode.Index := i - 1;
  ctvColumns.SelectedNode := ctvColumns.Nodes.Items[i - 1];

Thanks Pieter — that worked for the buttons,

I also have drag-and-drop re-ordering. How do they work after the changes? Do I simply set Interactions.Reorder := True.

Steve

Hi,

Yes, Re-ordering is allowed (as it was before), on the same level, as you would do when clicking on the buttons up & down.