エクスプローラからのファイルのドラッグ&ドロップを受け付ける

 フォームが 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;