Vcl.Controls.TDragObject
Delphi
TDragObject = class(TObject)
C++
class PASCALIMPLEMENTATION TDragObject : public System::TObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | Vcl.Controls.pas Vcl.Controls.hpp |
Vcl.Controls | Vcl.Controls |
説明
TDragObject は,ドラッグ動作を管理するために使用する基本クラスです。
カスタムドラッグオブジェクトの作成時に TDragObject を基本クラスとして使用すると,ドラッグアンドドロップ動作やドラッグアンドドック動作を管理できます。ドラッグ動作がドラッグされている 1 つのコントロールと関連付けられている場合,かわりに TBaseDragControlObject からカスタムドラッグオブジェクトを派生させます。ドラッグされているコントロールの OnStartDrag イベントではカスタムドラッグオブジェクトを作成します。ドラッグアンドドロップを受け付けるときは,ターゲットの OnDragOver イベント内でパブリックな IsDragObject 関数を使用します。
メモ: TDragObject は,ドラッグ動作の終了時に自動的に解放されません。ドラッグ動作の終了時に自動的に解放されるドラッグオブジェクトを処理するには,かわりに TDragObjectEx を使用します。
TDragObject の仮想メソッドをオーバーライドする必要のないアプリケーションでは,ドラッグオブジェクトがドラッグ動作を管理するために自動的に作成されます。
TDragObject を使用すると,より柔軟なドラッグ処理を実現できます。通常は,OnDragOver および OnDragDrop イベントの Source パラメータがドラッグ操作を開始するコントロールになります。異なる種類の複数のコントロールが同じ種類のデータ(ファイル名,テキスト,金額など)のドラッグを開始する必要がある場合は,ソースは各種のコントロールをサポートしていなければなりません。ドラッグオブジェクトを使用すると,ターゲットがドラッグソースを 1 つのクラスとして処理できるようにします。これは,各ソースコントロールがその OnStartDrag イベント内で同じ種類のドラッグオブジェクトを作成することによります。OnDragOver および OnDragDrop イベントハンドラは,コントロールとは違って,IsDragObject を呼び出すことでソースがドラッグオブジェクトであるかどうかを判断できます。
Drag オブジェクトは,メインの .EXE と同様に,複数の .DLL 間でドラッグできます。これは,パッケージを使用していないときに,.EXE で実装したフォームから .DLL で実装したフォームにドラッグ操作を行う場合に便利です。