In XBrowse, the default behavior of pressing <Enter> is going to next column. If lFastEdit is .T., it goes to edit current cell.
But I want to call my user defined function after user presses <Enter>. Furthermore, depending on the row cell stayed, different functions can be called. eg. in "Customer Code" column, function to display dialog for editing current record; in "Name" column, function to display many customer photos and business card; in "Web site" column, it displays company site by Google; in "Outstanding Amount" column, I can display the purchase history.
I do not want to use Buttons in ButtonBar. My target is user can operate the program all by keyboard, with minimum usage of moving mouse and mouse-click.
Thanks.
How to change behavior of pressing <Enter> in XBrowse?
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: How to change behavior of pressing <Enter> in XBrowse?
Code: Select all
oBrw:bKeyDown := { |k| If( k == VK_RETURN, OnEnterKey( oBrw ), nil ) }
function OnEnterKey( oBrw )
local oCol := oBrw:SelectedCol()
? oCol:cHeader
// your code depending on the selected column
return 0
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: How to change behavior of pressing <Enter> in XBrowse?
It works. Thanks.
But XBrowse still move to next column first and then call my function. May XBrowse keep staying on the same column? ie. do nothing and call OnEnterKey(oBrw) immediately.
But XBrowse still move to next column first and then call my function. May XBrowse keep staying on the same column? ie. do nothing and call OnEnterKey(oBrw) immediately.
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: How to change behavior of pressing <Enter> in XBrowse?
Use bKeyChar instead of bKeyDown.Max HK wrote: But XBrowse still move to next column first and then call my function. May XBrowse keep staying on the same column? ie. do nothing and call OnEnterKey(oBrw) immediately.
Code: Select all
oBrw:bKeyChar := { |nKey,nFlags,oBrw,oCol| If( nKey == VK_RETURN, OnEnterKey( oBrw, oCol ), nil ) }
....
function OnEnterKey( oBrw, oCol )
? oCol:cHeader
// your code
return 0 // important
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India