procedure TMainForm.WMDropFiles(var Msg: TWMDropFiles); var
CFileName: array [0..MAX_PATH] of Char;
WhichFiles: TStringList;
I, FilesCount: Integer; begin
WhichFiles := TStringList.Create; try
FilesCount := DragQueryFile(Msg.Drop, $FFFFFFFF, CFileName, MAX_PATH); for I := 0 to Pred(FilesCount) do begin if DragQueryFile(Msg.Drop, I, CFileName, MAX_PATH) > 0 then begin
WhichFiles.Add(CFileName); end; end;
if WhichFiles.Count > 0 then begin
Screen.Cursor := crHourGlass; for I := 0 to Pred(WhichFiles.Count) do begin { your code for processing list of filenames } end;
Screen.Cursor := crDefault; end; finally
DragFinish(Msg.Drop);
WhichFiles.Free; end; end;