TDBGrid的双击事件(100分)

  • 主题发起人 主题发起人 laisweet
  • 开始时间 开始时间
L

laisweet

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位高手能提供具有行双击事件的dbgrid控件,后告知如何响应Tdbgrid的行双击事件。
谢谢!
 
自己从 TCustomDBGrid继承 从新写一个Grid,加入
procedure WMDBButtonClick(var Message: TMessage); message WM_LBUTTONDBLCLK;
过程,在里面写入你想双击处理的事情就行了!
 
有没有现成的控件?
 
dxdbgrid控件,是express控件包里的.51delphi.com有下载
 
to 宁柯:
DBGrid 本身是具有双击事件的。

可以利用以下方法取得鼠标双击时所在的行和列:
=================================
目 的: 取得 TDBGrid 双击时到底点击了那行那列。
使用 DBGrid 的事件:MouseUp, DblClick。
在 DblClick 事件中,使用TCustomGrid所提供的方法 MouseCoord 取得鼠标
双击所在的行和列的索引值,从零开始。
注意:根据 DBGrid1.Options 是否包含 [dgIndicator] 而列的索引值有会所
不同:由于 Indicator 也占一列,所以包含 [dgIndicator] 的时候列的
索引值比没有包含 [dgIndicator] 的时候值大一。
先定义变量 cp: TPoint; 用来记录鼠标坐标。我是在Form1的private中定义的。
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
cp.x := X;
cp.y := Y;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
var
gc: TGridCoord;
str: String;
begin
gc := DBGrid1.MouseCoord(cp.x, cp.y);
str := 'Column Number is: ' + IntToStr(gc.X) + #9'Row Number is: '
+ IntToStr(gc.Y);
ShowMessage(str);
end;
====================================
自己原来也没发现TCustomGrid居然提供了这么一个有用的方法-MouseCoord!!!
如果不是为了取得这100分,自己恐怕也不会发现这个如此有用的方法。
呵呵,既有分拿,又学到了东西,爽!
 
DBGrids本身就有雙擊事件,樓主捨近求遠???
 
散分了....
 
后退
顶部