拦截WM_DROPFILES消息,如下:
procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;至于过程体的代码则要你自己写了。

解决方案 »

  1.   

    此例程是往Memo里拖放文件的 主要是拦截WM_DROPFILES消息
    unit drag_support_demo;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,shellapi,
      StdCtrls;type
      TForm1 = class(TForm)
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure wmdropfiles(var message:tmessage);message wm_dropfiles;
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    begin
      Dragacceptfiles(form1.handle,true);
    end;procedure tform1.wmdropfiles(var message:tmessage);
    var
      p:array[0..254] of char;
      i:word;
    begin
      inherited;
      memo1.lines.clear;
      {$IFDEF WIN32}
      I:=dragqueryfile(message.wparam,$ffffffff,nil,0);
      {$ELSE}
      I:=dragqueryfile(message.wparam,$ffff,nil,0);
      {$ENDIF}
      caption:=inttostr(i);
      for i:=0 to i-1 do
      begin
        dragqueryfile(message.wparam,i,p,255);
        memo1.lines.add(strpas(p));
      end;
    end;
    end.