Voraussetzung: bBrowser 1.4
Manchmal ist die Farbbedingung zu komplex, um diese in einer einfachen Bedingung zu definieren. In diesen Fällen kann in der Bedingung eine Methode aufgerufen werden, die einen logischen Wert zurückgibt. Hierzu muss im 2. Argument der Methode bColorCondition:Init() das Objekt übergeben werden, in dem die Methode definiert ist. Solch ein Objekt kann beispielsweise das Fenster von dem bBrowser sein.
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},;
Brush{Color{COLORRED}}}
self:oDCBrowser:ColorCondition:Add(oColorCondition)
self:oDCBrowser:Refresh()
self:oDCBrowser:Redraw()
ENDIF
METHOD CheckCondition() CLASS myDataWindow
LOCAL odbsCUSTOMER AS OBJECT
LOCAL iAge AS INT
odbsCUSTOMER := self:oDCBrowser:Server
iAge := Year(Today())-Year(odbsCUSTOMER:BIRTHDAY)
IF iAge>=40
RETURN TRUE
ELSE
RETURN FALSE
ENDIF