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

Delphi下DBGrid拖放问题

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