Para que tu aplicación acepte los ficheros soltados desde el Explorador, haz uso de la unidad ShellApi, allí tienes todo lo que necesitas para ello.
Prueba el siguiente trozo de código y cuando lo ejecutes, suéltale algunos ficheros desde el Explorador o desde el Escritorio. Para terminar de comprender el ejemplo, no olvides mirar las funciones que sobre él aparecen en la ayuda del Delphi.
Código Delphi
[-]
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure FileIsDropped (var Msg: TMessage); message WM_DROPFILES;
public
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 := 0 to NumberOfFiles-1 do begin
DragQueryFile(hDrop, fCounter, fName, 254);
Names := Names + #13#10 + fName;
end;
ShowMessage(IntToStr(NumberOfFiles) + ' Archivos arrastrados.'
+ #13#10 + 'Archivos :' + Names);
DragFinish(hDrop);
end;