我将所有按钮的DragMode设置为dmAutomatic,这样我就可以移动按钮(拖放)。
但我有一个问题:因为GridPanel比ScrollBox大,所以ScrollBox具有可见的垂直滚动条。我想让滚动条自动向下滚动,这样我就可以将底部从可见(顶部)行放到底部不可访问的行中(这是所有Windows程序的典型行为,对吧?)
我有一个简单的代码可以实现这一点:在MouseMove中,我检测鼠标何时接近滚动框的底部,并调整ScrollBox.vertsollba.Position向下滚动。这仅在我未处于“拖放”模式(如果我未拖动按钮)时有效。
如果我开始拖放操作 NO mouse events are fired .
即使我处于“拖放”模式,我如何接收MouseMove事件?
TDragObject 管理所述拖放操作。这 OnDragOver 和 OnDragDrop 在当前鼠标位置下,可由潜在目标控件处理。
TDragObject
OnDragOver
OnDragDrop
这将允许您处理 OnMouseMove 以类似的方式捕获当前拖动时的鼠标移动。
OnMouseMove