gpt4 book ai didi

delphi - VirtualStringTree - 外部控件不传递 TDragObject

转载 作者:行者123 更新时间:2023-12-02 10:53:50 26 4
gpt4 key购买 nike

当从控件拖动到 VirtualStringTree 时,如果该控件具有 TDragObject,则预计将其用作 OnDragDrop 和 OnDragOver 中的源,但它始终返回该组件。我相信这是一个错误,但是是否有其他方法可以在不破坏 TBaseVirtualTree 的情况下接收另一个控件的 TDragObject?

procedure TIntelligenceCentralFrame.vstDragOver(Sender: 
TBaseVirtualTree; Source: TObject; Shift: TShiftState; State: TDragState;
Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean);

编辑:Minimal Example

最佳答案

这种行为是正确的。您已使用TDragControlObject作为拖动对象,这个对象应该将分配的控件传递给 OnDragOverOnDragDrop事件。引用文献将其描述为:

When TDragControlObject is used, the OnDragOver and OnDragDrop events receive the control being dragged as the Sender, instead of the drag object itself.

其中,Sender 是虚拟 TreeView 的 OnDragOverOnDragDrop 事件的 Source 参数。解决方案很简单,使用不同的拖动对象。或者期望在使用 TDragControlObject 时您将获得分配的控制权拖动对象。

关于delphi - VirtualStringTree - 外部控件不传递 TDragObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com