如何获得dbgrid的只是双击行的事件,双击dbgrid其它的区域不激发事件??? 在dbgrid中的onclick的事件不管双击dbgrid的什么位置都能激发事件,我现在想仅当双击dbgrid某一行时激发事件,怎么做???谢谢~~~~~~~~~~~~~~~~~~~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个很挫的办法,判断if DBGrid1.DataSource.DataSet.Active=False then Exit;if DBGrid1.DataSource.DataSet.RecordCount<1 then Exit;不知道行不行,呵呵 可能是我没说明白啊,我先给dbgrid1创建一个ondbclick事件,ondbclick事件是双击dbgrid1中任何区域都能激发这个事件,比如双击列的名字或者双击dbgrid1的空白区域都能激发事件,我现在想双击数据行激发事件,怎么判断我双击的是dbgrid的哪个区域??to:konhon(优华)~~~~~能说的详细些吗????如何判断??? 源代码示范如下:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB;type TForm1 = class(TForm) DBGrid1: TDBGrid; DataSource1: TDataSource; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; procedure DBGrid1DblClick(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure DBGrid1CellClick(Column: TColumn); private FClickCell:Boolean; //判断点击的是格子里的数据还是标题 { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DblClick(Sender: TObject);begin if FClickCell then //如果是格子 ShowMessage('格子') else ShowMessage('不是格子'); //如果不是格子 FClickCell:=False; //执行完后将FClickCell初始为Falseend;procedure TForm1.DBGrid1TitleClick(Column: TColumn);begin FClickCell:=False; //点击标题时end;procedure TForm1.DBGrid1CellClick(Column: TColumn);begin FClickCell:=True; //点击格子时end;end.要写DBGrid中的3个事件:OnCellClickOnDblClickOnTitleClick 其实OnTitleClick这个事件可以省略。unit Unit1;interfaceuses Forms,Messages,Dialogs,Windows, DB, ADODB, Classes, Controls, Grids, DBGrids;type TForm1 = class(TForm) DBGrid1: TDBGrid; DataSource1: TDataSource; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; procedure DBGrid1DblClick(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); private FClickCell:Boolean; //判断点击的是格子里的数据还是标题 { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DblClick(Sender: TObject);begin if FClickCell then //如果是格子 ShowMessage('格子') else ShowMessage('不是格子'); //如果不是格子 FClickCell:=False; //执行完后将FClickCell初始为Falseend;procedure TForm1.DBGrid1CellClick(Column: TColumn);begin FClickCell:=True; //点击格子时end;end.要写DBGrid中的2个事件:OnCellClickOnDblClick 在DBGridDblClick中加上条件判断就可以了 求一查询SQL语句 有关控制台程序得一个问题? 如何使MDIChild中的一个窗口设成激活状态??? 请问怎样可以使USB盘插入到电脑后立即自动执行盘上的文件?[2000系统] 主 题: 大家来帮帮我吧?我晕了。这难道还有错误么? 哪位高手帮忙解决一下关于文件流的问题 Delphi做的C/S软件如何连接网上远程服务器 这个软件是用Delphi编写的吗 如何对文本文件操作 有关DirectoryExists、FindFirst等函数在TService失效问题 动态创建的控件在自己的事件中销毁自己安全吗? 哪位高手能指导一下啊!!(TTreeView的使用)
if DBGrid1.DataSource.DataSet.Active=False then Exit;
if DBGrid1.DataSource.DataSet.RecordCount<1 then Exit;
不知道行不行,呵呵
to:konhon(优华)~~~~~
能说的详细些吗????如何判断???
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB;type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DBGrid1CellClick(Column: TColumn);
private
FClickCell:Boolean; //判断点击的是格子里的数据还是标题
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if FClickCell then //如果是格子
ShowMessage('格子')
else ShowMessage('不是格子'); //如果不是格子
FClickCell:=False; //执行完后将FClickCell初始为False
end;procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
FClickCell:=False; //点击标题时
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
FClickCell:=True; //点击格子时
end;end.要写DBGrid中的3个事件:
OnCellClick
OnDblClick
OnTitleClick
Forms,Messages,Dialogs,Windows, DB, ADODB, Classes, Controls, Grids, DBGrids;type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
FClickCell:Boolean; //判断点击的是格子里的数据还是标题
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if FClickCell then //如果是格子
ShowMessage('格子')
else ShowMessage('不是格子'); //如果不是格子
FClickCell:=False; //执行完后将FClickCell初始为False
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
FClickCell:=True; //点击格子时
end;end.要写DBGrid中的2个事件:
OnCellClick
OnDblClick