我找过些例子都是程序内部组件的拖拽。
但如何拖拽外部组件到程序内部呢?
比如拖个目录到程序,程序获取该目录的路径。

解决方案 »

  1.   

    1.procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
    2.procedure TForm1.FormCreate(Sender: TObject);
    begin
         DragAcceptFiles(Handle, True);
    end;3.
    procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;
    var
      CFileName: array[0..MAX_PATH] of Char;
      FileCount:integer;
    begin
    try
    FileCount := 0;
      while DragQueryFile(Msg.Drop,  FileCount, CFileName, MAX_PATH) > 0 do
      begin
        inc(FileCount);//这里处理拖动的文件名 CFileName
        Msg.Result := 0;
      end;
    finally
      DragFinish(Msg.Drop);
    end;
    end;