如题

解决方案 »

  1.   

    看一下dragmode的属性
    再就是你是将listview拖到别的控件如panel上的话,与listview的drag事件没关系
      

  2.   

    要将dragmode属性如何设置?
    我是将filelistbox中的拖到listview中去。下面是主要代码:
    procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
     Temp:string;
     i:integer;
     ListItem:TListItem;
    begin
     if (Sender is TListView)and (Source is TFileListBox) then
     begin
      for i:=0 to FileListBox1.Items.Count-1 do
      begin
       Temp:=DirectoryListBox1.Directory;
       temp:=temp+DirectoryListBox1.Items[i];
       ListView1.Items.Add;
       ListItem:=ListView1.Items[ListView1.Items.count-1];
       ListItem.SubItems.Add(temp);
      end;
     end;
    end;procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
     Accept:=(Source is TFileListBox);
    end;procedure TForm1.ListView1Editing(Sender: TObject; Item: TListItem;
      var AllowEdit: Boolean);
    begin
      AllowEdit := False;
    end;
      

  3.   

    listview的dragkind为dkdock,dragmode为dmManual
      

  4.   

    别拖动的控件dragkind为dkdock,dragmode为dmAutomatic
      

  5.   

    谢谢!拖是能拖了。但是,filelistbox中有几个文件就全部拖到listview中,但我只想一个一个地拖动。请继续帮一下忙,分我可以另外再给的
      

  6.   

    谢谢,已解决。请lii39611(吹雪之立花) 再接我的30分
      

  7.   

    procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
     Temp:string;
     i:integer;
     ListItem:TListItem;
    begin
     if (Sender is TListView)and (Source is TFileListBox) then
     begin
      for i:=0 to FileListBox1.Items.Count-1 do
      begin
      Temp := DirectoryListBox1.Directory + FileListBox1.Items[0];
      ListItem := ListView1.Items.Add;
      ListItem.Caption := Temp;
      end;
     end;
    end;procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
     Accept:=(Source is TFileListBox);
    end;procedure TForm1.ListView1Editing(Sender: TObject; Item: TListItem;
      var AllowEdit: Boolean);
    begin
      AllowEdit := False;
    end我想你要的是这个功能,你需要把Listview1的DragKind属性设为dkDock,把FileListBox1的DragMode属性设为dmAutomatic,那样就OK了,如果还不满足你的要求,用QQ跟我联系吧,我的QQ是106873731
      

  8.   

    上面有一句写错了,应该是
    Temp := DirectoryListBox1.Directory + FileListBox1.Items[i];