In xBrowse, when having
oBrowse:aCols[ 5 ]:nEditType   := EDIT_GETMany customers suggested us to do only one click, as it will be more easy to work.
Could be posible?.
Thank you
oBrowse:aCols[ 5 ]:nEditType   := EDIT_GETPressing Enter key is the basic way to trigger edit. This is what we inform users. Double-click is provided as an additional way to start edit.
Single click is used for cell navigation.
For browses where users are required to do lot of data-entry, it is desirable to enable Fastedit mode where pressing a data key triggers edit and after edit the next editable cell is ready for edit.
We can also configure xbrowse to use excel style edit. In this case F2 key triggers edit and enter key navigates to next cell and we can tell the users that if they know excel, they know xbrowse.
But in Excel single click edits the cell, but not in xbrowse. That is the users demand.
obrw:bLButtonUp := { |r,c,f,o| If( o:SelectedCol():lEditable, o:selectedcol():Edit(), nil )Even in Excel, single click selects the clicked cell. Either pressing any data key or double-click invokes edit and not single-click.
XBrowse with FastEdit behaves exactly the same way.
If we also set
oBrw:lEnterKey2Edit := .f.
oBrw:lF2KeyToEdit := .t.
edit behavior is exactly like Excel.
#include 'fivewin.ch'
#include 'ord.ch'
#include 'xbrowse.ch'
#include 'hbcompat.ch'
//#include "xbrowse.prg"
REQUEST DBFCDX
//----------------------------------------------------------------------------//
function Main()
local oDlg, oBrw, oFont, nWild := 2
local cList, aFlds, aHdrs
local nChoice := 0, uDataSource
SET DATE ITALIAN
SET CENTURY ON
RDDSETDEFAULT( "DBFCDX" )
cList := "First,Last,Street,State,HireDate"
//nChoice := ALERT( "Choose Data Souce", { "DBF", "ADO", "ARRAY" } )
uDataSource := OpenData( nChoice, cList )
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
DEFINE DIALOG oDlg SIZE 750,300 PIXEL FONT oFont ;
TITLE "XBrowse Incremental Filters"
aFlds := aHdrs := HB_ATokens( cList, ',' )
if nChoice == 3
aFlds := Array( Len( aFlds ) )
AEval( aFlds, { |u,i| aFlds[ i ] := i } )
endif
@ 30,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
COLUMNS aFlds HEADERS aHdrs ;
DATASOURCE uDataSource AUTOSORT CELL LINES NOBORDER ;
FASTEDIT
WITH OBJECT oBrw
:lIncrFilter := .t.
:lSeekWild := ( nWild == 2 )
:cFilterFld := "FIRST"
:nStretchCol := STRETCHCOL_WIDEST
:nColDividerStyle := LINESTYLE_BLACK
:lColDividerComplete := .T.
:nHeaderLines := 1.5
:lRecordSelector := .F.
:lAllowColHiding := .F.
:nMarqueeStyle := 7
:bLButtonUp := { |r,c,f,o| If( o:SelectedCol():lEditable, o:SelectedCol():Edit(), nil ) }
END
AEval( oBrw:aCols, { |o| o:nEditType := EDIT_GET } )
@ 10, 10 COMBOBOX oBrw:cFilterFld ;
ITEMS aHdrs ;
ON CHANGE ( oBrw:Seek( "" ), oBrw:SetFocus() ) ;
SIZE 50,400 PIXEL OF oDlg
@ 10, 70 COMBOBOX nWild ITEMS { "Starting With", "Containing" } ;
ON CHANGE ( oBrw:lSeekWild := ( nWild == 2 ), ;
oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ), ;
oBrw:SetFocus() ) ;
SIZE 70,400 PIXEL OF oDlg
@ 11,160 SAY oBrw:oSeek PROMPT oBrw:cSeek SIZE 200,10 PIXEL ;
OF oDlg COLOR CLR_BLACK,CLR_YELLOW PICTURE '@!'
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:SetFocus(), .f. )
RELEASE FONT oFont
return nil
//----------------------------------------------------------------------------//
static function OpenData( nSource, cList )
local oCn, uSource
USE c:\fwh\samples\CUSTOMER SHARED NEW ALIAS CUST
SET ORDER TO TAG FIRST
GO TOP
if nSource == 3
uSource := CUST->( FW_DbfToArray( cList ) )
CLOSE CUST
else
uSource := "CUST"
endif
return uSource
//----------------------------------------------------------------------------//Up, Thanks
Up
I am unable to reproduce the error.
You say that in the statement ::oEditGet:SelectAll(), ::oEditGet is nil.
If so, we should have got error in any of the preceding lines of code where ::oEditGet's methods were used.
Dear Mr. Nages,
Try to do single click out of the field, for example, on the row of column separator.
If you could not reproduce it I will make a video.
Thank you!
I also see this behaviour!
MfG
Up, please!.
Up
Up!!
Mr. Nages,
Can you please look at it?.
Thanks ![]()