type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); private procedure DropFiles(var Msg: TMessage); message WM_DropFILES; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle, True); end;
procedure TForm1.DropFiles(var Msg: TMessage); var i, Count: integer; buffer: array[0..1024] of Char; begin inherited; Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数 for i := 0 to Count - 1 do begin buffer[0] := #0; DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称 Memo1.Lines.Add(buffer); end; end;