VOTools for Visual Objects  
and Vulcan.NET  

bBrowser => Tipps & Tricks => Wie können komplexe Farbbedingungen definiert werden?    




 ab bBrowser
1.4
  bBrowser 1.4 (Limited)
ja
 

Wie können komplexe Farbbedingungen definiert werden?

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

Copyright © 2003-2015 BEFO GmbH