Visual issue with two TAdvTreeViews (nodes disappear visually on select)


I encountered a visual problem in one of my applications, which utilizes two TAdvTreeViews that allow for drag & drop interaction:
Under certain conditions nodes will visually disappear when clicked.

The issue can be reproduced in the following fashion:

  1. Put two TAdvTreeViews on an empty form.
  2. Set the attribute Interaction.DragDropMode to tdmCopy for both.
  3. Implement a OnDragOver-Event for each TreeView which simply sets Accept = True.
  4. Click the topmost node of the first TreeView. Then click the topmost node of the second TreeView. Then click the topmost node of the first TreeView again. The node should have visually disappeared now. When you click the other node again it will also disappear.

The cause of the problem seems to be that the drag-action ist started immediately on mouse down, since it can be supressed by opening the unit AdvCustomTreeView and changing the result of "CanStartDragFromMouseDown" from True to False and the result of "CanStartDragFromMouseMove" from False to True.

The issue is reproducable in the newest version of the VCL UI Pack.

Unfortunately the drag & drop in TAdvTreeView cannot be combined with the default drag & drop, just remove the event OnDragOver. You can control if a node can be dropped with OnBeforeDropNode event or alternatively programmatically assign the OnCustomDrag* events.