Vcl.Controls.TDragObjectEx

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