Delphi 向けのファイルドロップ処理ユニットです。Windows エクスプローラーなどからアプリケーションへファイルをドラッグ&ドロップすると、そのファイルパスを受け取り、アプリケーション内で利用できるようになります。
- Windows 標準の HDROP フォーマットに対応したファイルドロップ処理
DragQueryFile
を使ってドロップされたファイル名の一覧を取得- 最大ファイル数やサイズに依存せず、エクスプローラーから安定して受け取れる設計
- 一部の他アプリケーション(例:画像エディタなど)からの非HDROP形式には非対応
-
対象フォームでドラッグ&ドロップを許可:
DragAcceptFiles(Handle, True);
-
フォームのメッセージハンドラで
WM_DROPFILES
を処理:procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
-
ドロップ処理内でファイル一覧を取得:
var Files: TArray<string>; begin if ExtractDroppedFiles(Msg.Drop, Files) then begin // Files にファイルパス一覧が格納されている end; end;
- ドロップされたファイル以外(画像データ、テキストデータなど)は取得できません
- HDROP 形式以外のフォーマット(例:CF_BITMAP, CF_DIB, CF_TEXT など)には未対応
- アプリケーションが
DragAcceptFiles
を呼び出していない場合、ドロップは無視されます
- Delphi 7 以降
- Windows 7 / 8 / 10 / 11
MIT または パブリックドメインとして自由にご利用ください。
VRAMの魔術師