VOTools for Visual Objects  
and Vulcan.NET  

bBrowser => Tipps & Tricks => Wie kann eine komplexe Farbbedingung mit unterschiedlichen...    




 ab bBrowser
1.4
  bBrowser 1.4 (Limited)
ja
 

Wie kann eine komplexe Farbbedingung mit unterschiedlichen Farben definiert werden?

Aufbauend auf dem vorherigen Tipp
     Wie können komplexe Farbbedingungen definiert werden?
kann die Methode anstatt eines logischen Wertes auch ein Farb-Array zurückgeben. Das Farb-Array muss hierbei aus den folgenden Elementen bestehen:

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

Alle Array-Elemente die leer sind, werden mit den Vorder- und Hintergrundfarben aus dem bColorCondition Objekt gefüllt.

Das folgende Codefragment demonstriert die Vorgehensweise:

 

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