我现在要做一个程序,左边放Treeview,右边放ListView,ListView是Report形式,有一些记录,现在想从Listview中拖拽记录到左边的Treeview,并且在TreeView中判断是在哪个节点上,在哪个节点上,就在这个节点的下面添加该记录。
    我没有作过类似的程序,紧急求救!

解决方案 »

  1.   

    使用接口,可以去文档中心HKBarton的文章看看!
      

  2.   

    TreeView 好象已经封装了 OnDragDrop,你只要处理这个事件就可以了,这样要简单一些
      

  3.   

    Delphi syntax:type TDragDropEvent = procedure(Sender, Source: TObject; X, Y: Integer) of object;
    property OnDragDrop: TDragDropEvent;C++ syntax:typedef void __fastcall (__closure *TDragDropEvent)(System::TObject* Sender, System::TObject* Source, int X, int Y);
    __property TDragDropEvent OnDragDrop = {read=FOnDragDrop, write=FOnDragDrop};DescriptionUse the OnDragDrop event handler to specify what happens when the user drops an object. The Source parameter of the OnDragDrop event is the object being dropped, and the Sender is the control the object is being dropped on. The X and Y parameters are the coordinates of the mouse positioned over the control
      

  4.   

    楼上的说这么多都是废话,还是我来吧!如下:1,
    在ListView1DragOver,与 TreeView1DragOver事件中设置接收拖动
     if (Source = TreeView1) or (Source = ListView1) then
        begin
            Accept := True;
        end;2,如果是从Treeview到间listview拖动
    则ListView1DragDrop事件中用
    var
       llvi_Module: TListItem;             //声明ListViewItem数据类型
    If (Source = TreeView1) then
        begin
            //得到TreeView1的所选
            Snode := TreeView1.Selected ;
            //在listview中增加
             llvi_Module := ListView1.Items.Add;
            llvi_Module.Caption := Snode.text;
             //删除treeview
          
            //删除子节点
            Snode.DeleteChildren ;
            //删除当前节点
            Snode.Delete ;
            end;方过来一样。