FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowse – memofields
Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM
Re: xBrowse – memofields
Posted: Sat Nov 27, 2010 06:14 PM
Oh yes, the result can look like:
Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: xBrowse – memofields
Posted: Sun Nov 28, 2010 02:07 AM

Frank,

Hey, that looks great! Will you show us how you did the codeblock for the colors?

Regards,
James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: xBrowse – memofields
Posted: Sun Nov 28, 2010 07:59 AM

Hello James, hello Frank,
thank you.
I will try to use bold font for the first row of a "database" record.
Best regards,
Otto

Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM
Re: xBrowse – memofields
Posted: Sun Nov 28, 2010 04:05 PM
James,

here is a working sample:
Code (fw): Select all Collapse
#include "fivewin.ch"
#include "xbrowse.ch"

#define COLOR_ORANGE RGB( 255, 204, 135 )
#define COLOR_BLUE   RGB( 156, 169, 223 )

FUNCTION main()
   LOCAL oWnd
   LOCAL oBrw
   LOCAL oCol
   LOCAL aDaten := {}
   // Fill array
   AAdd( aDaten, { 01, "One  ", "Freilebende        ", "Nun sind           ", "Wenn ich mit Xao im ", "Anfhren sollte man  ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 02, "One  ", "Gummib„rchen       ", "Gummib„rchen       ", "Kino bin, red ich   ", "auch noch: manche    ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 03, "One  ", "gibt es nicht. Man ", "weder wabbelig     ", "ihm so lange ein,   ", "m”gen die Grnen am  ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 04, "One  ", "kauft sie in       ", "noch z„h; sie      ", "daá das die besten  ", "liebsten, manche     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 05, "One  ", "Packungen an der   ", "stehen genau an der", "sind, bis er sie    ", "die Gelben. Ich mag  ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 06, "One  ", "Kinokasse. Dieser  ", "Grenze. Auch das   ", "alle isst. Sie      ", "am liebsten die      ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 07, "One  ", "Kauf ist der Beginn", "macht sie spannend.", "schmecken           ", "Roten. Sie glhen    ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 08, "One  ", "einer fast         ", "Gummib„rchen sind  ", "scheusslich und     ", "richtig rot, und     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 09, "One  ", "erotischen und sehr", "auf eine           ", "fhlen sich         ", "ihr                  ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 10, "One  ", "ambivalenten       ", "aufreizende Art    ", "scheusslich an.     ", "Himbeergeschmack     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 11, "One  ", "Beziehung          ", "weich. Und da sie  ", "Dagegen das sch”ne, ", "f„hrt wie Napalm     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 12, "One  ", "Gummib„rchen-      ", "weich sind, kann   ", "herk”mmliche Gu     ", "ber die             ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 13, "One  ", "Mensch.            ", "man sie auch       ", "                    ", "Geschmacksknospen.   ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 14, "One  ", "                   ", "ziehen. Ich mache  ", "                    ", "Eine meiner          ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 15, "One  ", "                   ", "das sehr gerne. Ich", "                    ", "Lieblingsphantasien  ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 16, "One  ", "                   ", "sitze im dunklen   ", "                    ", ", wo es um           ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 17, "One  ", "                   ", "Kino und ziehe     ", "                    ", "Gummib„rc            ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 18, "Two  ", "This               ", "Is a               ", "short               ", "text                 ", { CLR_BLACK, COLOR_BLUE   } } )
   AAdd( aDaten, { 19, "Four ", "In dichter und     ", "Nie wieder         ", "Schon zu  Hause     ", "Und wieder und       ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 20, "Four ", "geraffter Form     ", "Gummib„rchen, denke", "beunruhigen  mich   ", "wieder geht es mir   ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 21, "Four ", "spiegelt sich im   ", "ich jedesmal. In   ", "wieder Gerchte     ", "durch den Kopf:      ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 22, "Four ", "Verh„ltnis zum     ", "der Zwischenzeit   ", "ber einen          ", "Gummib„rchen sind    ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 23, "Four ", "Gummib„rchen eine  ", "l„chle ich dann    ", "Marktvorstoá der    ", "Spitze.              ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 24, "Four ", "menschliche Love-  ", "ber den           ", "Japaner mit         ", "                     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 25, "Four ", "Affair wider.      ", "Absolutheitsanspruc", "Gummireis oder      ", "                     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 26, "Four ", "                   ", "h den diese Momente", "Gummischweinen.     ", "                     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 27, "Four ", "                   ", "erheben.           ", "                    ", "                     ", { CLR_BLACK, COLOR_ORANGE } } )
   AAdd( aDaten, { 28, "Five ", "This               ", "Is a               ", "short               ", "text                 ", { CLR_BLACK, COLOR_BLUE   } } )
   AAdd( aDaten, { 29, "Six  ", "Empty              ", "                   ", "                    ", "                     ", { CLR_BLACK, COLOR_ORANGE } })
   AAdd( aDaten, { 30, "Seven", "Here is a little   ", "                   ", "                    ", "                     ", { CLR_BLACK, COLOR_BLUE   } } )
   AAdd( aDaten, { 31, "Seven", "bit more text      ", "                   ", "                    ", "                     ", { CLR_BLACK, COLOR_BLUE   } } )
   //
   AEval( aDaten,    { | x, n | aDaten[ n , 3 ] := HB_OemToAnsi( x[ 3 ] ), ;
                                aDaten[ n , 4 ] := HB_OemToAnsi( x[ 4 ] ), ;
                                aDaten[ n , 5 ] := HB_OemToAnsi( x[ 5 ] ), ;
                                aDaten[ n , 6 ] := HB_OemToAnsi( x[ 6 ] ) } )

   DEFINE WINDOW oWnd TITLE "xBrowse with alternating row color"

   oBrw := TXBrowse():New( oWnd )
   // Column 1
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "Recno"
   oCol:nArrayCol := 1
   // Column 2
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "Name"
   oCol:nArrayCol := 2
   oCol:bStrData  := { || IIf( oBrw:nArrayAt == 1, ;
                          aDaten[ oBrw:nArrayAt, 2 ], ;
                          IIf( Upper( RTrim( aDaten[ oBrw:nArrayAt, 2 ] ) ) == Upper( RTrim( aDaten[ oBrw:nArrayAt - 1, 2 ] ) ), ;
                          "", ;
                          aDaten[ oBrw:nArrayAt, 2 ] ) ) }
   // Column 3
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "P01"
   oCol:nArrayCol := 3
   // Column 4
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "P02"
   oCol:nArrayCol := 4
   // Column 5
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "P03"
   oCol:nArrayCol := 5
   // Column 6
   oCol           := oBrw:AddCol()
   oCol:cHeader   := "P04"
   oCol:nArrayCol := 6
   
   // set color
   oBrw:bClrStd := { || aDaten[ oBrw:nArrayAt, 7 ] }
   
   oBrw:nRowDividerStyle = LINESTYLE_NOLINES
   oBrw:nColDividerStyle = LINESTYLE_NOLINES

   oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW

   oBrw:SetArray( aDaten )

   oBrw:lRecordSelector := .T.

   oBrw:CreateFromCode()

   oWnd:oClient := oBrw
   
   ACTIVATE WINDOW oWnd

RETURN NIL


For the first approach, I've defined a new 'bSkip', trying to set the colors dynamically, but it doesn't work correctly! Just try it and you'll see what I mean:
Code (fw): Select all Collapse
   oBrw:bSkip  := { | nSkip, nOld | ;
                    IIf( nSkip == nil, nSkip := 1, ), ;
                    nOld := oBrw:nArrayAt, ;
                    oBrw:nArrayAt += nSkip, ;
                    oBrw:nArrayAt := Min( Max( oBrw:nArrayAt, 1 ), Len( oBrw:aArrayData ) ), ;
                    Eval( oBrw:bOnSkip, oBrw ), ;
                    lClrFlag := IIf( aDaten[ nOld, 2 ] == aDaten[ oBrw:nArrayAt, 2 ], lClrFlag, !lClrFlag ), ;
                    oBrw:nArrayAt - nOld }

   oBrw:bClrStd := { || IIf( lClrFlag, { CLR_BLACK, COLOR_ORANGE }, { CLR_BLACK, COLOR_BLUE } ) }

Perhaps you or someone else have a good idea to determine the color of the rows with 'bSkip'?
Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86

Continue the discussion