Delphi下DBGrid拖放问题

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;

posted @ 2013-05-01 15:50  小天1981  阅读(278)  评论(0编辑  收藏  举报