楼上的大哥能不能说详细一点啊?

解决方案 »

  1.   

    给你个大概的例子
    procedure WMDropFiles(var Msg: TWMDropFiles);procedure TForm1.FormCreate(Sender: TObject);
    begin
      DragAcceptFiles(Handle, True);
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      DragAcceptFiles(Handle, False);
    end;procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
    var
      Num, I, LvIndexOfDragOver: Integer;
      FileName: array[0..255] of Char;
      Point: TPoint;
    begin
      Num := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0);//取得文件数
      DragQueryPoint(Msg.Drop, Point);
      if WindowFromPoint(Point) = Self.Handle then //Drag onto MainForm
        for I := 0 to Num - 1 do
        begin
          DragQueryFile(Msg.Drop, I, FileName, sizeof(FileName));
          addfile(string(FileName), -1);
        end
      else //Drag onto lv control
      begin
        if lv.GetItemAt(Point.X, Point.Y) <> nil then
          LvIndexOfDragOver := lv.GetItemAt(Point.X, Point.Y).Index;
        for I := 0 to Num - 1 do
        begin
          DragQueryFile(Msg.Drop, I, FileName, sizeof(FileName));
          addfile(string(FileName), LvIndexOfDragOver);
          Inc(LvIndexOfDragOver);
        end;
      end;以上是我的一个程序段,希望对你有帮助