Page 1 of 1

How I add a Button in DCBROWSECOL inside the HEADER

Posted: Tue Sep 04, 2018 11:11 am
by digitsoft
hello Roger
How I add a Button in DCBROWSECOL inside the HEADER

Re: How I add a Button in DCBROWSECOL inside the HEADER

Posted: Tue Sep 04, 2018 1:35 pm
by rdonnay
Here is a test program:

Code: Select all

#INCLUDE "dcdialog.CH"

FUNCTION Main()

LOCAL GetList[0], oButton, aDir, oBrowse, i, cCaption, GetOptions

aDir := Directory()

@ 0,0 DCBROWSE oBrowse DATA aDir SIZE 50,10 FIT

FOR i := 1 TO 4
  DCBROWSECOL ELEMENT i HEADER Chr(255) WIDTH 10 PARENT oBrowse
NEXT

DCGETOPTIONS RESIZE

DCREAD GUI FIT TITLE 'Button in Header of Browse' ;
   OPTIONS GetOptions ;
   EVAL {||AddHeaderButton(GetList,oBrowse,1,'File Name'), ;
           AddHeaderButton(GetList,oBrowse,2,'File Size'), ;
           AddHeaderButton(GetList,oBrowse,3,'File Date'), ;
           AddHeaderButton(GetList,oBrowse,4,'File Time'), ;
           nil}

RETURN nil

* ---------

PROC appsys ; RETURN

* ----------

STATIC FUNCTION AddHeaderButton(aGetList,oBrowse,nCol,cCaption,bAction)

LOCAL GetList[0], ;
      oButton, ;
      oHeading := oBrowse:getColumn(nCol):heading, ;
      aSize := oHeading:currentSize()

@ 2,2 DCPUSHBUTTONXP SIZE aSize[1]-4, aSize[2]-4 PIXEL ;
      CAPTION cCaption ;
      ACTION bAction ;
      OBJECT oButton ;
      EVAL {|o|oHeading:resize := {||oButton:setSize({oHeading:currentSize()[1]-4,oButton:currentSize()[2]})}} ;
      PARENT oHeading

DCREAD GUI EXIT PARENT oBrowse

DC_MergeGetLists(aGetList,GetList)

RETURN nil

Re: How I add a Button in DCBROWSECOL inside the HEADER

Posted: Thu Sep 06, 2018 5:22 am
by digitsoft
Thanks Roger
rdonnay wrote:Here is a test program:

Code: Select all

#INCLUDE "dcdialog.CH"

FUNCTION Main()

LOCAL GetList[0], oButton, aDir, oBrowse, i, cCaption, GetOptions

aDir := Directory()

@ 0,0 DCBROWSE oBrowse DATA aDir SIZE 50,10 FIT

FOR i := 1 TO 4
  DCBROWSECOL ELEMENT i HEADER Chr(255) WIDTH 10 PARENT oBrowse
NEXT

DCGETOPTIONS RESIZE

DCREAD GUI FIT TITLE 'Button in Header of Browse' ;
   OPTIONS GetOptions ;
   EVAL {||AddHeaderButton(GetList,oBrowse,1,'File Name'), ;
           AddHeaderButton(GetList,oBrowse,2,'File Size'), ;
           AddHeaderButton(GetList,oBrowse,3,'File Date'), ;
           AddHeaderButton(GetList,oBrowse,4,'File Time'), ;
           nil}

RETURN nil

* ---------

PROC appsys ; RETURN

* ----------

STATIC FUNCTION AddHeaderButton(aGetList,oBrowse,nCol,cCaption,bAction)

LOCAL GetList[0], ;
      oButton, ;
      oHeading := oBrowse:getColumn(nCol):heading, ;
      aSize := oHeading:currentSize()

@ 2,2 DCPUSHBUTTONXP SIZE aSize[1]-4, aSize[2]-4 PIXEL ;
      CAPTION cCaption ;
      ACTION bAction ;
      OBJECT oButton ;
      EVAL {|o|oHeading:resize := {||oButton:setSize({oHeading:currentSize()[1]-4,oButton:currentSize()[2]})}} ;
      PARENT oHeading

DCREAD GUI EXIT PARENT oBrowse

DC_MergeGetLists(aGetList,GetList)

RETURN nil