procedure TForm1.DragFileProc(var Message:TMessage) ; var i:word; p:array[0..254]of char; begin if Message.Msg=WM_DropFiles then begin //self.MemoDrag.Clear; i:=DragQueryFile(Message.WParam,$FFFFFFFF,nil,0); //取得拖放文件总数 for i:=0 to i-1 do begin DragQueryFile(Message.WParam,i,p,255); //取得拖放文件名 self.MemoDrag.Lines.add(StrPas(p)); //对文件的处理 end; end else //其他消息,调用原来的处理程序 OLDWndProc(Message); end;
procedure TForm1.BitBtn1Click(Sender: TObject); begin DragAcceptFiles(self.MemoDrag.Handle,true); OLDWndProc:=self.MemoDrag.WindowProc; //保存原来的WindowProc self.MemoDrag.WindowProc:=self.DragFileProc; //设置新的WindowProc end;