DCBROWSECOL Array COLOR clause

This forum is for eXpress++ general support.
Post Reply
Message
Author
Koverhage
Posts: 151
Joined: Mon Feb 01, 2010 8:45 am

DCBROWSECOL Array COLOR clause

#1 Post by Koverhage »

Hi,

i use the following to show a calendar. This work as expected. Now i want set a different color
for holidays and sundays. But if i add the COLOR clause each row/col show me a additional
{{}}.
What i'm doing wrong ?

Code: Select all

   @ 1,0 DCBROWSE oBrowse2 DATA aTage SIZE lastcol-1,lastrow-3.25 ;
          PRESENTATION aPres FONT '8.Arial' HEADLINES 3 ;
          FREEZELEFT { 1 } ;
          NOHSCROLL NOVSCROLL ;
          POINTER nPointer
// Time from - to
DCBROWSECOL DATA { {||FormatArray(DC_TokenArray(DC_GetColArray(1,oBrowse2),';')) } } ;
            HEADER 'Time;from;to' FONT '8.Arial' WIDTH 3.5 PROTECT {|| .t. }
// Monday
DCBROWSECOL DATA {{|| FormatArray(DC_TokenArray(DC_GetColArray(2,oBrowse2),';')) }};
            HEADER {|| aDatum[1] }  [b]COLOR {|| daycolor(1) }[/b] ;
            DATATOOLTIP {|| lDataToolTips } TIPBLOCK {|| aTage[nPointer,9] } ;
            EVAL {|o| o:dataarea:RbClick := {||showterm(aTage[nPointer,9]) } } ;
            FONT '8.Arial' WIDTH 10 PROTECT {|| .t. }


STATIC FUNCTION FormatArray( aArray )

Local aMemo := {}, i := 0, nMaxLength := Len(aArray)

//dc_arrayview(aArray)

FOR i := 1 TO nMaxLength
  AAdd(aMemo,aArray[i])
  IF i >= 3
    EXIT
  ENDIF
NEXT

RETURN aMemo


static function DayColor(nElement)
Local aRetCode := { GRA_CLR_BLACK, GRA_CLR_WHITE }
Local t_array := { 'Sunday', ;
                   'Monday', ;
                   'Tuesday', ;
                   'Wednesday', ;
                   'Thursday', ;
                   'Friday', ;
                   'Saturday' }

if aDatum[nElement] = t_array[1]
   aRetCode := {GRA_CLR_WHITE,GRA_CLR_GREEN}
endif
return aRetCode
Klaus

User avatar
Tom
Posts: 1234
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: DCBROWSECOL Array COLOR clause

#2 Post by Tom »

COLOR never worked with multirow browses, afaik. You need to create your own ownerdrawing subclass.
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

User avatar
rdonnay
Site Admin
Posts: 4813
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: DCBROWSECOL Array COLOR clause

#3 Post by rdonnay »

As Tom said, you can use your own Ownerdraw subclass, or you can use the OWNERDRAW clause of @ DCBROWSE and write your own ownerdraw routine.

Look at \exp19\samples\browse\ownerdraw.prg.
The eXpress train is coming - and it has more cars.

Post Reply