Mr Rao,
Sorry perhaps you not understood ..
I not use wbrowse of Hernan but I converted on 2010 a TMultiselect class ( create for wbrowse) into xbrowse class !!!
the code sample
oApp():oGrid := TXBrowse():New( oApp():oDlg )
oApp():oGrid:nTop := 00
oApp():oGrid:nLeft := nSplit+2
oApp():oGrid:nBottom := oApp():oDlg:nGridBottom
oApp():oGrid:nRight := oApp():oDlg:nGridRight
aBrowse := { { { || " "}, ' ', 15 },;
{ { || CL->CLCODICE}, i18n("Codice"), 50 },;
{ { || CL->CLNOME }, i18n("Ragione Sociale"), 90 },;
{ { || CL->CLINDIR }, i18n("Indirizzo"), 90 },;
{ { || CL->CLCAP }, i18n("Cap"), 45 },;
{ { || CL->CLCITTA }, i18n("Località"), 100 },;
{ { || CL->CLPROV }, i18n("Provincia"), 20 },;
{ { || CL->CLREGIONE }, i18n("Regione"), 80 },;
{ { || CL->CLNAZIONE }, i18n("Nazione"), 80 },;
{ { || CL->CLPARTIVA }, i18n("Partita Iva"), 60 } }
FOR i := 1 TO Len(aBrowse)
oCol := oApp():oGrid:AddCol()
oCol:bStrData := aBrowse[ i, 1 ]
oCol:cHeader := aBrowse[ i, 2 ]
oCol:nWidth := aBrowse[ i, 3 ]
NEXT
oApp():oGrid:aCols[01]:addbmpfile( ".\bitmaps\checkoff.bmp" )
oApp():oGrid:aCols[01]:addbmpfile( ".\bitmaps\checkon.bmp")
oApp():oGrid:aCols[01]:bBmpData:={ || iif( ascan( oMultiSel:aRecno, CL->( recno() ) ) >0, 2, 1 ) }
oApp():oGrid:aCols[01]:bLClickHeader = { | nMRow, nMCol, nFlags, Self |;
iif( oApp():oGrid:aCols[01]:nHeadBmpNo==2,;
( oApp():oGrid:aCols[01]:nHeadBmpNo:=1, oMultiSel:UnSelectAll() ),;
( oApp():oGrid:aCols[01]:nHeadBmpNo:=2, oMultiSel:SelectAll() ) ),;
oApp():oGrid:Refresh() }
oApp():oGrid:aCols[01]:cHeader := 'Sel'
oApp():oGrid:aCols[01]:nHeadBmpNo := 1
oApp():oGrid:aCols[01]:nHeadBmpAlign := AL_RIGHT
for x=1 to len( oApp():oGrid:aCols )
oApp():oGrid:aCols[x]:bLDClickData:={ || oApp():oGrid:aCols[01]:nHeadBmpNo:=1, oMultiSel:Selected( CL->( recno() ), .t. ),;
oMultiSel:Select( CL->( recno() ) ) }
oApp():oGrid:aCols[x]:bRClickData:={ |r,c| oMultiSel:menu( CL->( recno() ), r, c,"CL" ),;
oApp():oGrid:aCols[01]:nHeadBmpNo:=iif( oMultiSel:lSelectAll, 2,1 ), oApp():oGrid:refresh() }
oApp():oGrid:aCols[x]:oDataFont := oFontGrid
next
oMultiSel:=TXMultiSel():New( oApp():oGrid )
oApp():oGrid:SetRDD()
oApp():oGrid:CreateFromCode()
the small class
CLASS TXMultiSel
DATA lSelectAll INIT .F.
DATA aRecNo
DATA aRecnoAll
DATA oLbx
DATA lSelect INIT .F.
DATA nId INIT 0
DATA lmenu INIT .T.
DATA cAlias
METHOD New( oLbx ) CONSTRUCTOR
METHOD Selected( nRecNo )
METHOD SelectAll()
METHOD UnSelectAll() INLINE ::lSelectAll:= .f., ::aRecNo := {}, ::oLbx:Refresh()
METHOD Reverse()
METHOD Select( nRecNo )
METHOD Menu( nRecNo, nMRow, nMCol )
METHOD VerSelected( nRecNo )
METHOD ListRecord( aCampos, bFiltro, cCaption )
ENDCLASS
i sent you a test
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com