您的位置:首页 > 编程语言 > Delphi

Delphi下DBGrid拖放问题

2012-07-23 21:54 204 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: