比如两个ListView,其中一个是拖动源ListView1,另一个是拖动目标ListView2。首先ListView1的DrogModel属性要设为dmAutomobile才可拖动。在ListView2的两个标准事件:
OnDrogOver和OnDrogDrop中写你的代码实现把ListView1的Items拖到ListView2中。具体写法你看帮助把,zswang看帮助的方法就好了。

解决方案 »

  1.   

    //from help
    procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
      AnItem: TTreeNode;
      AttachMode: TNodeAttachMode;
      HT: THitTests;
    begin
      if not Assigned(TTreeView(Sender).Selected) then Exit;
      HT := TTreeView(Sender).GetHitTestInfoAt(X, Y);
      AnItem := TTreeView(Sender).GetNodeAt(X, Y);
      if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then begin
        AttachMode := naAddChild;
        if htNowhere in HT then AttachMode := naAdd
        else if htOnIndent in HT then AttachMode := naInsert;
        TTreeView(Sender).Selected.MoveTo(AnItem, AttachMode);
      end;
    end;procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := Source is TTreeView;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      TreeView1.DragMode := dmAutomatic;
    end;