I have a ScrollBox in which I have a GridPanel in which I have Buttons. I set DragMode to dmAutomatic for all buttons so I can move the buttons around (drag and drop).
But I have a problem: because the GridPanel is larger than the ScrollBox, the ScrollBox has the vertical scrollbar visible. I want to make the ScrollBar to automatically scroll down so I can drop a bottom from the visible (top) rows into the inaccessible rows at the bottom (this is typical behavior for all Windows programs, right?)
I have simple code that is doing this: In MouseMove I detect when the mouse is getting close to the bottom of the ScrollBox and I adjust ScrollBox.VertScrollBa.Position to scroll down. This works ONLY if I am NOT in "drag and drop" mode (if I am not dragging a button).
If I start a drag and drop operation NO mouse events are fired.
What can I do to receive MouseMove event even if I am in "drag and drop" mode?
A solution would be not to use dmAutomatic and implement my own drag and drop alternative (based on mousedown, mousemove, mouseup). Is these a quicker fix?
TDragObject
will receive and handle the mouse messages during Drag&Drop. But you should then get e.g.DragOver
events instead. – nil