Delphi下DBGrid拖放问题

来源:互联网 发布:安科瑞售电付费软件 编辑:程序博客网 时间:2024/05/20 16:35

DBGrid的拖放问题:设为dmAutomatic,则点击无法移动记录,设为dmManual则在记录上点击时无法响应MouseDown事件,请问哪位大侠能解决
---------------------------------------------------------------

这是我在网上找的代码,经测试非常不错:

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,    Y: Integer); begin    if ssLeft in Shift then      TDBGrid(Sender).BeginDrag(False); end; procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;    State: TDragState; var Accept: Boolean); begin    Accept := Source is TDBGrid; end; procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var    AnItem: TTreeNode;    I: Integer;    S: String; begin    with Sender as TTreeView do    begin      AnItem := GetNodeAt(X, Y);      with Source as TDBGrid do      begin        S := '';        for I := 0 to Columns.Count - 1 do          S := S + Columns[I].Field.AsString + ' ';      end;      Items.AddChild(AnItem, S);      AnItem.Expand(True);    end; end;