我在为组件创建新事件方面是新手......我注意到TDBGrid
有OnCellClick
,但遗憾的是它没有 OnCellDblClick 强烈>事件并且让我很烦恼的事实是,如果我双击网格中的任何地方,将使用所选行......
所以,我想创建OnCellDblClick事件,但正如我之前所说,我不知道该怎么做。
我注意到很多人都想要同样的活动,但我无法找到答案。
是否有可能知道双击是否在记录上,如果是,那么用它做我想要的所有东西?
答案 0 :(得分:1)
也许您可以将DblClick
与DBGrid的MouseDown
事件一起使用
但这仅在Options.dgRowSelect
为假
例如
type
TForm1 = class(TForm)
private
FEmptySpace : boolean;
...
procedure TForm1.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
// in my test I only get here when clicked on empty part of the dbgrid
FEmptySpace := TRUE;
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if FEmptySpace then
showmessage('clicked in the middle of nowhere...')
else
showmessage(DBGrid1.Fields[DBGrid1.SelectedField.Index].AsString);
FEmptySpace := FALSE;
end;
我没有在所有情况下测试过这个
在我的测试中
Options.Editing := false
Options.dgRowSelect := false
Readonly := true