首先在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;