エクスプローラからのファイルのドラッグ&ドロップを受け付ける
フォームが Windowsエクスプローラからのファイルの Drag&Drop を受け付けるようにする方法:
1.uses に ShellAPI を追加
uses ShellAPI; (もちろん他のものもあるでしょうから uses xxx,yyy, shellAPI になりますけど)
2.フォーム生成時に、D&Dを受け付ける旨指定しておく
//ファイルのD&Dを受け取る DragAcceptFiles(self.Handle, True);
3.メッセージを受け取る関数を作成する
private procedure DropFiles(var Msg:TWMDROPFILES); message WM_DROPFILES;
procedure TForm1.DropFiles(var Msg: TWMDROPFILES); var fileName: array [0..255] of char; i, nofFiles: integer; begin nofFiles := DragQueryFile(Msg.Drop, Cardinal(-1), nil, 0); for i:=0 to nofFiles-1 do begin DragQueryFile(Msg.Drop, i, fileName, SizeOf(FileName)-1); //ここで fileName に対して行いたい処理 //例: ListBox1.items.add( fileName ); end; DragFinish(Msg.Drop); end;