Egy kis példaprogram: (megszámolja, hogy hány fájl lett a Form-ra 'dobva' és kiírja a fájlok neveit)

unit Unit1;
interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;
type
   TForm1 = class(TForm)
     procedure FormCreate(Sender: TObject);
   private
     { Private declarations }

   procedure FileIsDropped ( var Msg : TMessage ) ;
               Message WM_DropFiles ;
   public
     { Public declarations }
   end;

var
   Form1: TForm1;

implementation
uses shellapi;
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
   DragAcceptFiles( Handle,True ) ;
end;

procedure TForm1.FileIsDropped ( var Msg : TMessage ) ;
var
   hDrop : THandle ;
   fName : array[0..254] of char ;
   NumberOfFiles : integer ;
   fCounter : integer ;
   Names : string ;
begin
   hDrop := Msg.WParam ;
   NumberOfFiles := DragQueryFile(hDrop,-1,fName,254);
   Names := '' ;
   for fCounter := 1 to NumberOfFiles do 
begin
   DragQueryFile(hDrop,fCounter,fName,254);
  // Ez adja vissza a fájlok neveit
   Names := Names + #13#10 + fName ;
   end ;
   ShowMessage('Droped '+IntToStr(NumberOfFiles) + ' Files : ' + Names );
   DragFinish ( hDrop);
  end;
end.