How to create a OnCellDblClick for Delphi's TDBGrid
Posted 癫狂编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了How to create a OnCellDblClick for Delphi's TDBGrid相关的知识,希望对你有一定的参考价值。
I‘m a newbie when it comes to creating new events to components... and I noticed that TDBGrid
has a OnCellClick
, but sadly it doesnt have an OnCellDblClick event and it bothers me a lot the fact that if I double click anywhere in my grid the selected row will be used...
So, I wanted to create the OnCellDblClick event, but as I‘ve said earlier, I don‘t know how to do it.
I noticed that a lot of people want this same event, but I can‘t find the answerd to it.
Is it possible to know if the double click was on a record, if it was, then do all the stuff I want with it?
Maybe you can use the DblClick
together with the MouseDown
event of the DBGrid
But this will only work if the Options.dgRowSelect
is false
for example
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;
I have not tested this in all situations
In my test
Options.Editing := false
Options.dgRowSelect := false
Readonly := true
以上是关于How to create a OnCellDblClick for Delphi's TDBGrid的主要内容,如果未能解决你的问题,请参考以下文章
[转]How to: Create a Custom Principal Identity
How to create vlan on Linux (with Cisco Catalyst Switch)
How to create a repository in Github with Eclipse?
How to Create a Basic Plugin 如何写一个基础的jQuery插件