Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как принимать перетаскиваемые файлы из проводника?

01.01.2007

Вот пример с TListbox на форме:

type 
  TForm1 = class(TForm) 
    ListBox1: TListBox; 
    procedure FormCreate(Sender: TObject); 
  protected 
    procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; 
  private 
  public 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
uses shellapi; 
 
{$R *.DFM} 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  DragAcceptFiles(Form1.Handle, true); 
end; 
 
procedure TForm1.WMDROPFILES (var Msg: TMessage); 
var 
  i, 
  amount, 
  size: integer; 
  Filename: PChar; 
begin 
  inherited; 
  Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255); 
  for i := 0 to (Amount - 1) do 
  begin 
    size := DragQueryFile(Msg.WParam, i , nil, 0) + 1; 
    Filename:= StrAlloc(size); 
    DragQueryFile(Msg.WParam,i , Filename, size); 
    listbox1.items.add(StrPas(Filename)); 
    StrDispose(Filename); 
  end; 
  DragFinish(Msg.WParam); 
end;

Взято из https://forum.sources.ru