[FMX] FMX 拖放支持的一处小问题修正

FMX 的拖放支持实际上要比 VCL 方便一些,控件的 OnDragOver 事件的 Operation 代替了 VCL 中只能简单的 Accept。但就 10.2 版本而言,其拖放操作在 Windows 下对 DragDrop 的调用存在问题,没有调用 TControl.DragDrop 函数,造成拖放后,目标的 IsDragOver 属性未恢复为 False,结果就是控件周围多了一个厚边框。解决的办法实际上很简单,自己强制修改下 IsDragOver 成员的值为 False,然后让其重绘就可以了。至于如何修改一个只读属性的值,一种简单的修改代码参考如下:

PBoolean(@FDockTabs.IsDragOver)^ := False;
FDockTabs.Repaint;

修正后的运行效果如下:


分享到: