FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowse and bClrStd
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
xBrowse and bClrStd
Posted: Mon Sep 07, 2020 10:33 AM
Good morning RAO

I have an array of colors and would like to apply it to the columns

this example works

Code (fw): Select all Collapse
#include "fivewin.ch"
#include "xbrowse.ch"

function main()

  local oDlg, oBrw
  local aData    := { { "One", "Two" ,"_111"}, { "Three", "Four","_222" }, { "Five", "Six","_333" }  }

  DEFINE DIALOG oDlg SIZE 300,200 PIXEL TITLE FWVERSION

   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
         DATASOURCE aData AUTOCOLS ;
         CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bClrStd    := { || { CLR_BLACK, CLR_WHITE } }
      :aCols[ 1 ]:bClrStd  := { || { CLR_BLACK, CLR_HGREEN } }
      :aCols[ 2 ]:bClrStd  := { || { CLR_BLACK, CLR_RED} }
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

return nil


if I change with array ,it doesn't work
Code (fw): Select all Collapse
function main()

  local oDlg, oBrw
  local aData    := { { "One", "Two" ,"_111"}, { "Three", "Four","_222" }, { "Five", "Six","_333" }  }

  lOCAL aColor  := {CLR_HGREEN , CLR_RED}

  DEFINE DIALOG oDlg SIZE 300,200 PIXEL TITLE FWVERSION

   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
         DATASOURCE aData AUTOCOLS ;
         CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bClrStd    := { || { CLR_BLACK, CLR_WHITE } }
      FOR n := 1 to 2
          :aCols[ n ]:bClrStd  := { || { CLR_BLACK,:aCols[n]  } }
      NEXT 
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

return nil


Maurizio
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 11:06 AM

Whatever be the context, you should not use index variable inside a codeblock created inside the loop.
This is one fundamental rule we need to keep in mind since the clipper days.

Regards



G. N. Rao.

Hyderabad, India
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 12:32 PM

thanks RAO
there is workaraund for works with an array of color ?
I need to parameterize the colors of the columns .

Maurizio

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 12:59 PM
At least, this is an error:

Code (fw): Select all Collapse
:aCols[ n ]:bClrStd  := { || { CLR_BLACK,:aCols[n]  } }


Replace it with this other:

Code (fw): Select all Collapse
:aCols[ n ]:bClrStd  := { || { CLR_BLACK,oBrw:aCols[n]  } }


EMG
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 01:09 PM
Sorry Enrico I copied the wrong example,
Code (fw): Select all Collapse
function main()

  local oDlg, oBrw
  local aData    := { { "One", "Two" ,"_111"}, { "Three", "Four","_222" }, { "Five", "Six","_333" }  }

  lOCAL aColor  := {CLR_HGREEN , CLR_RED} ,nColore

  DEFINE DIALOG oDlg SIZE 300,200 PIXEL TITLE FWVERSION

   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
         DATASOURCE aData AUTOCOLS ;
         CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bClrStd    := { || { CLR_BLACK, CLR_WHITE } }
          
      FOR n := 1 to 2
          :aCols[ n ]:bClrStd  :=   { || { CLR_BLACK,aColor[n]  } }
      NEXT 
     :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

return nil
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 01:16 PM
Try this:

Code (fw): Select all Collapse
#include "Fivewin.ch"


function main()

  local oDlg, oBrw
  local aData    := { { "One", "Two" ,"_111"}, { "Three", "Four","_222" }, { "Five", "Six","_333" }  }

  lOCAL aColor  := {CLR_HGREEN , CLR_RED}

  local n

  DEFINE DIALOG oDlg SIZE 300,200 PIXEL TITLE FWVERSION

   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
         DATASOURCE aData AUTOCOLS ;
         CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bClrStd    := { || { CLR_BLACK, CLR_WHITE } }
         
      FOR n := 1 to 2
          :aCols[ n ]:bClrStd  := MAKEBLOCK( aColor, n )
      NEXT
     :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

return nil


STATIC FUNCTION MAKEBLOCK( aColor, n )

    RETURN { || { CLR_BLACK,aColor[n]  } }


EMG
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: xBrowse and bClrStd
Posted: Mon Sep 07, 2020 01:30 PM

Grazie Enrico ,

works as I wanted :D

Maurizio

Continue the discussion