How can I make the command below to have other parameter like:
#command DCGETBROWSE [DATA <d>] [GET <g>] => GetBrowse( <d>, @<g>, GetList )
Example:
Code: Select all
#command DCGETBROWSE [DATA <d>] [GET <g>] => GetBrowse( <d>, @<g>, GetList, aColSize, aColHead, aColWidth)
FUNCTION GetBrowse( aData, oGet, GetList, aColSize, aColHead, aColWidth )
LOCAL nPointer, oBrowse, oStatic
@ DCGUI_ROW, DCGUI_COL DCPUSHBUTTON SIZE 20,20 PIXEL ;
CAPTION 'u' FONT '12.Marlett' ;
ACTION {||PostAppEvent(xbeP_Keyboard,xbeK_SH_DOWN,,oGet)} ;
NOTABSTOP
@ 0,0 DCSTATIC OBJECT oStatic TYPE XBPSTATIC_TYPE_TEXT SIZE 10,10 ;
INVISIBLE
@ 0,0 DCBROWSE oBrowse DATA aData ;
PARENT oStatic ;
NOTABSTOP ;
SIZE 10,10 ;
NOHSCROLL ;
POINTER nPointer ;
ITEMSELECTED {||oGet:setData(Pad(aData[nPointer,1],20)), ;
DC_GetRefresh(oGet), ;
oStatic:hide(), ;
SetAppFocus(oGet)} ;
LOSTFOCUS {|a,b,o|o:hide()}
DCBROWSECOL ELEMENT 1 WIDTH 16 PARENT oBrowse
DCEVAL {||oStatic:setPos({oGet:currentPos()[1], ;
oGet:currentPos()[2]-oStatic:currentSize()[2]}), ;
oStatic:setSize({oGet:currentSize()[1]+15,oStatic:currentSize()[2]}), ;
oBrowse:setSize(oStatic:currentSize()), ;
oGet:setInputFocus := {||oStatic:hide()}, ;
oGet:keyboard := {|nKey,b,oGet|SeekFile(aData,nKey,oGet,oBrowse,oStatic)} }
RETURN nil
STATIC FUNCTION SeekFile( aDir, nKey, oGet, oBrowse, oStatic )
LOCAL nFound, cBuffer := Trim(oGet:get:buffer)
IF nKey == xbeK_BS .OR. nKey == xbeK_DEL .OR. nKey == xbeK_TAB
RETURN nil
ELSEIF nKey == xbeK_SH_DOWN
oStatic:show()
oStatic:toFront()
oBrowse:show()
oBrowse:forceStable()
oBrowse:refreshAll()
SetAppFocus(oBrowse)
RETURN nil
ELSEIF nKey == xbeK_DOWN .AND. oStatic:isVisible()
SetAppFocus(oBrowse)
RETURN nil
ENDIF
IF nKey == xbeK_ENTER
IF oStatic:isVisible()
PostAppEvent(xbeBRW_ItemSelected,,,oBrowse)
ENDIF
RETURN nil
ENDIF
IF !Empty(cBuffer)
nFound := AScan(aDir,{|a|a[1]=cBuffer})
IF nFound > 0
oBrowse:arrayElement := nFound
oBrowse:refreshAll()
oStatic:show()
oStatic:toFront()
oBrowse:show()
ENDIF
ELSE
oStatic:hide()
ENDIF
RETURN nil