Grid 的GragMode设成Auto,然后写TreeView的GragOver和GragDrop事件的处理方法

解决方案 »

  1.   

    是这样 的,比如,数据表为,id , name 两个字段
     当我把dbgrid上一条记录拖动到treeview中的某个结点上时,要求被拖动的这条记录的name字段的值变成,接点记录的caption ,请教, !
      

  2.   

    to baldzhang :
    不要在 grid上的onmousedown和onmouseup上写代码了吗?
      

  3.   

    Delphi的DBGrid有个Bug,就是DragMode设为Automatic时,
    鼠标的单击变的无效了,所以,就不可以用鼠标来选择记录了。。:(
    但是这时是不用自己写OnMouseDown和OnMouseMove的。如果要自己写MouseDown和MouseMove,来BeginDrag的话,在画有表格的区域是无效的,
    不知道如何解法。
    哦,找到了procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      Caption := Format('X: %d, Y: %d', [X, Y]);
      if ssLeft in Shift then
        DBGrid1.BeginDrag(True);
    end;照这个写法,鼠标按下,可以选择记录,并且可以进行拖动,
    TreeView那边的操作,自己写写看了。