VOTools for Visual Objects  
and Vulcan.NET  

bBrowser => Tips & Tricks => How to create a complex color condition with several colors    




 from bBrowser
1.4
  bBrowser 1.4 (Limited)
yes
 

How to create a complex color condition with several colors

Based on the previous tip
     How to creates complex color conditions
the method can return a color array instead of a logical value. The color array must consist of the following items:

  auColorSpec [BCS_FOREGROUND]
    [BCS_BACKGROUND]
    [BCS_SELECTEDFOREGROUND]
    [BCS_SELECTEDBACKGROUND]
    [BCS_INACTIVESELECTEDFOREGROUND]
    [BCS_INACTIVESELECTEDBACKGROUND]

All array elements that are empty, are filled with the foreground and background colors from the bColorCondition object.

The following code fragment demonstrates the proceeding:

 

METHOD PostInit() CLASS myDataWindow
  LOCAL odbsCUSTOMER     AS bDBServer
  LOCAL oColorCondition  AS bColorCondition

  odbsCUSTOMER := bDBServer{"CUSTOMER.DBF"}
  IF odbsCUSTOMER:Used
    self:oDCBrowser:Use(odbsCUSTOMER)

    oColorCondition := bColorCondition{"Server:CheckCondition()",;
                                       self,;
                                       Color{COLORYELLOW}}
    self:oDCBrowser:ColorCondition:Add(oColorCondition)

    self:oDCBrowser:Refresh()
    self:oDCBrowser:Redraw()
  ENDIF

METHOD CheckCondition() CLASS myDataWindow
  LOCAL auColorSpec      AS ARRAY
  LOCAL odbsCUSTOMER     AS OBJECT
  LOCAL iAge             AS INT

  odbsCUSTOMER := self:oDCBrowser:Server

  iAge := Year(Today())-Year(odbsCUSTOMER:BIRTHDAY)
  IF iAge>=40
    auColorSpec := ArrayCreate(BCS_ITEMS)
    auColorSpec[BCS_BACKGROUND] := Brush{Color{COLORRED}}

    RETURN auColorSpec
  ELSEIF iAge>=30
    auColorSpec := ArrayCreate(BCS_ITEMS)
    auColorSpec[BCS_BACKGROUND] := Brush{Color{COLORBLUE}}
    RETURN auColorSpec
  ELSE
    RETURN FALSE
  ENDIF

Copyright © 2003-2015 BEFO GmbH