管理DBGrid组件中的单击事件

时间:2014-05-09 07:49:05

标签: delphi

我通过处理DBGrid组件上的click事件来解决问题。我知道此活动并未针对此组件公开,因此我使用了' OnCellClick'事件,以便在我单击DBGrid的一行时执行某些操作。

另一点是,在填充我的DBGrid(链接到TkbmMemTable)之后,我执行memTable.First以查看网格中的第一个元素。问题是我无法触发第一行的onCellClick事件。实际上,当我点击第一行时,它会触发双击事件。

1 个答案:

答案 0 :(得分:0)

您可以通过派生自己的组件或使用Grid在同一单元中声明(Hack)类,并通过强制转换来分配您的事件,从而使受保护的OnClick可见。但是我不确定这是否会产生预期的结果,因为如果您点击网格的现有编辑器并且如果您单击其他行和同一列时将保留该事件将不会触发该事件,所以你必须添加OnCellClick或点击进入另一列。我无法重现双击事件的触发。

type
THackGrid=Class(TDBGrid);

procedure TForm5.MyEvent(Sender: TObject);
begin
   MyDataset.First;
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
  THackGrid(DBGrid1).OnClick := MyEvent;
end;