2010-12-14 9 views
2

私はDelphi GUIアプリケーション(RADスタジオ2010)を持っており、ユーザが自分のワークスペースを再配置できるようにしたいと考えています。私はTButtonsを同じフォームでドラッグ可能にする方法を知っていますが、ユーザーがあるフォームから別のフォームにボタンをドラッグできるようにする方法はありません。 TButtonをクリックしてドラッグしようとすると、ドラッグアンドドロップ操作のように扱われるとは思いません。 TButtonを複数のフォーム間でドラッグアンドドロップできるようにするにはどうすればよいですか?フォームからフォームへのTButtonのドラッグ

答えて

2

まず、ボタンのDragModeをdmAutomaticに設定するか、ボタンがマウスダウンしたときに手動でBeginDragを呼び出します。次に、ドラッグするフォームのOnDragOver + OnDragDropイベントを使用します。

+0

+1これまで最高の答え – ComputerSaysNo

1

ターゲットフォームのOnDragDropイベントを使用して、ボタンのParentプロパティを更新します。

+0

OnDragDropイベントは発生しません。 –

+0

@ジョン - ( 'OnMouseDown'の)[' BeginDrag'](http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/devwin32/wwcstartingadragoperation_xml.html)を呼び出していますか? –

+0

また、 'DragMode'プロパティを' dmAutomatic'に設定してください。 –

0

私は、ドラッグアンドドロップのDelphiのバージョンとどのように行うのか分からないが、それは今あなたが強制している場合を除き

IDataObject 

IDropTarget 

とシェルのドラッグ&ドロップに最適ですDelphiの限定されたエミュレーションではなく、ドラッグドロップのためにWindow独自のAPIを使用することができます。

関連する問題