2010-12-14 108 views
2

我有一個Delphi GUI應用程序(與RAD studio 2010),我希望用戶能夠重新排列他的工作空間。我知道如何使TButton在相同形式下拖動,但不知道如何讓用戶能夠將按鈕從一種形式拖動到另一種形式。當您點擊並嘗試拖動TButton時,我認爲它不會將其視爲拖放操作。你如何讓TButton在多種形式下具有拖放功能?將TButton從窗體拖動到窗體

回答

2

首先,將按鈕的DragMode設置爲dmAutomatic,或者在按鈕上出現鼠標按下時手動調用BeginDrag。然後使用您要拖到的窗體的OnDragOver + OnDragDrop事件。

+0

+1爲最佳答案,直到現在 – ComputerSaysNo 2010-12-15 07:04:24

1

使用目標窗體的OnDragDrop事件更新按鈕的Parent屬性。

+0

OnDragDrop事件未被觸發。 – 2010-12-14 19:01:37

+0

@John - 你在調用['BeginDrag'](http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/devwin32/wwcstartingadragoperation_xml.html)(在'OnMouseDown')? – 2010-12-14 19:18:10

+0

或者將'DragMode'屬性設置爲'dmAutomatic'。 – 2010-12-14 19:44:55

0

我不知道如何與德爾福版本的DragDrop的做到這一點,但它是完美的殼拖放與

IDataObject 

IDropTarget 

除了現在你不得不使用Window自己的API進行拖放,而不是使用Delphi的有限仿真。

相關問題