首先在uses中加入ShellAPI
再在窗体 TForm1.Create事件中加入代码:
DragAcceptFiles(self.Handle,true);//设定接受拖动事件的句柄为本窗口
再在TForm1的Public中写:
Procedure DragFiles(var Msg:TMessage);Message WM_DROPFILES;//响应文件拖动事件
再写上 TForm1.DragFiles过程的代码:
procedure TForm1.DragFiles(var msg:TMessage);
var p:array[0..254] of char;
i:word;
begin
inherited;
// i:=DragQueryFile(Msg.WParam,$FFFFFFFF,nil,0);//这一句结果i=拖放文件的总个数
// for i:=0 to i-1 do
// begin
DragQueryFile(Msg.WParam,0,p,255);//将拖放的第i个文件的文件路径拷到P中,这里改i为0,就是只算第一个文件的
Edit1.Text:=StrPas(p);
//end;
end;