将TButton从表单拖动到表单

时间:2010-12-14 18:48:23

标签: delphi forms button drag-and-drop

我有一个Delphi GUI应用程序(使用RAD studio 2010),我希望用户能够重新安排他的工作区。我知道如何使TButton以相同的形式拖动,但不知道如何使用户能够将按钮从一个表单拖动到另一个表单。当您单击并尝试拖动TButton时,我认为它不会像拖放操作那样对待它。你如何让TButton能够跨多种形式进行拖放?

3 个答案:

答案 0 :(得分:2)

首先,将按钮的DragMode设置为dmAutomatic,或者在按钮上发生鼠标按下时手动调用BeginDrag。然后使用您要拖动到的表单的OnDragOver + OnDragDrop事件。

答案 1 :(得分:1)

使用目标表单的OnDragDrop事件来更新按钮的Parent属性。

答案 2 :(得分:0)

我不知道如何使用Delphi版本的DragDrop,但它非常适合shell拖放

IDataObject

IDropTarget

除了现在你被迫使用Window自己的API进行拖放而不是Delphi的有限仿真。