请问如何判断双击的是DBGRID的标题还是DBGRID中的一行?

whzq007 2007-12-28 09:31:42
请问如何判断双击的是DBGRID的标题还是DBGRID中的一行?因为当单击标题的时候程序会进行排序,双击某一行的时候会弹出一个窗口,但现在当双击标题的时候也会弹出窗口。我希望双击标题的时候不响应DBGRID的双击事件。
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
whzq007 2007-12-28
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
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.
kaikai_kk 2007-12-28
  • 打赏
  • 举报
回复
单击标题排序时写在onTitleClick事件中,双击弹出窗口写在onDblClick事件中
怎么会响应,乱弹窗口呢????
stherix 2007-12-28
  • 打赏
  • 举报
回复
var
a:TGridCoord;
begin
a:=DBGrid1.MouseCoord(Mouse.CursorPos.X,Mouse.CursorPos.Y);
if a.X=0 then//也可能是if a.Y=0 then 即不太清了
Exit;
//yourcode here
end;

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧