Seite 2 von 2
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Fr, 08. Jun 2018 12:26
von vorti
Nein, leider nicht.
Wie gesagt, die Zellen wo das x greift macht er, allerdings ist der Rest weiß.
An der Stelle sei gesagt, dass ich die Column´s über eine Schleife einlese, wenn ich sie hintereinander reinschreibe, macht er den "Zebra-Stil" allen Spalten außer in der wo die Bedingung zutrifft.
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Mo, 11. Jun 2018 2:07
von AUGE_OHR
vorti hat geschrieben: ↑Fr, 08. Jun 2018 12:26
An der Stelle sei gesagt, dass ich die Column´s über eine Schleife einlese, wenn ich sie hintereinander reinschreibe, macht er den "Zebra-Stil" allen Spalten außer in der wo die Bedingung zutrifft.
es gibt ja hier 2 Vorschläge :
1.) oXbpcolumn:colorBlock := {|xValue,oCol,nRow|
2.) ::XbpBrowse:DrawRow( nRow, nCol, aValues, nCols, lRedraw )
wie im Thread erwähnt verwende ich XbpColumnLocal() wenn es noch zusätzliche o:Coloblock Codeblöcke habe.
deshalb geht dan IMHO Vorschlag 1.) nicht in solchen Fällen denn da habe ich schon den o:Colorblock belegt
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Mo, 11. Jun 2018 8:42
von vorti
Danke für die Antwort,
leider das gleiche Ergebnis. Für die Spalte, in welcher ich meine Bedingung habe, bleibt der Hintergrund weiß, falls x nicht zutrifft.
Ich häng mal ein Bsp. ran.
Code: Alles auswählen
oDlg := GuiStdDialog()
SetAppWindow( oDlg )
drawingArea := oDlg:drawingArea
oBrowse := GuiBrowseDB() // XbpColoredBrowse
oColumn := XbpColumnLocal():new( oBrowse:setParent() )
oColumn := oBrowse:AddColumn( {|| &( aZellinhalt[1] )}, 20, "Spalte 1" )
oColumn:ColorBlock := {|x| if( x = "test", { GRA_CLR_BLACK, GRA_CLR_YELLOW }, NIL ) }
oColumn := oBrowse:AddColumn( {|| &( aZellinhalt[2] )}, 20, "Spalte 2" )
oColumn := oBrowse:AddColumn( {|| &( aZellinhalt[3] )}, 20, "Spalte 3" )
oColumn := oBrowse:AddColumn( {|| &( aZellinhalt[4] )}, 20, "Spalte 4" )
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Mo, 11. Jun 2018 18:41
von AUGE_OHR
vorti hat geschrieben: ↑Mo, 11. Jun 2018 8:42
Für die Spalte, in welcher ich meine Bedingung habe, bleibt der Hintergrund weiß, falls x nicht zutrifft.
das hast du jetzt falsch verstanden. XbpColumnLocal() ist dafür WENN ein ColorBlock durch den Cursor "verdeckt" wird.
hier mal ein Zebra Browse wo ein o:Colorblock, trotzt Cursor, angezeigt wird.
- ZebraBro.zip
- pure Xbase++ Source
- (748 Bytes) 246-mal heruntergeladen
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Di, 12. Jun 2018 8:53
von vorti
Ich glaube wir reden aneinander vorbei. Ich häng mal ein Bild ran
- BrowseColor.png (4.97 KiB) 5814 mal betrachtet
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Di, 12. Jun 2018 12:22
von Wolfgang Ciriack
Setz doch mal statt nil deine Colorbedingung für das Zebra ein.
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Di, 12. Jun 2018 14:30
von vorti
Das funktioniert zwar, allerdings nur für kleine Datenmengen ( ohne scrollen ).
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Di, 12. Jun 2018 23:13
von AUGE_OHR
vorti hat geschrieben: ↑Di, 12. Jun 2018 14:30
Das funktioniert zwar, allerdings nur für kleine Datenmengen ( ohne scrollen ).
bei mir funktioniert es ohne Problem mit Wheel und grossen Daten Mengen.
zu deinem Snapshot : zeig uns doch mal deinen Codeblock
Code: Alles auswählen
IF ::getColumn( j ) :colorBlock <> NIL
EVAL( ::getColumn( j ) :colorBlock )
ELSE
hier wird ja nur geprüft "ob" es einen Codeblock gibt.
wenn der o:ColorBlock aber abhängig "vom Wert" sein soll müsste man den Codeblock so schreiben
Code: Alles auswählen
oCol:Colorblock := {|| IF( ARTIKEL->Bestand < 1, { GRA_CLR_RED, GRA_CLR_WHITE }, NIL ) }
und ZebraBro:DrawRow() so modifizieren
Code: Alles auswählen
IF ::getColumn( j ) :colorBlock <> NIL
IF EVAL( ::getColumn( j ) :colorBlock ) = NIL
::getColumn( j ) :dataArea:SetCellColor( nRow, NIL, GraMakeRGBColor( ::aRGB ), lRedraw )
ENDIF
ELSE
::getColumn( j ) :dataArea:SetCellColor( nRow, NIL, GraMakeRGBColor( ::aRGB ), lRedraw )
ENDIF
Re: xbpBrowse / XbpColumn -> unterschiedliche Zeilenfarbe?
Verfasst: Mi, 13. Jun 2018 8:41
von vorti
Perfekt, jetzt passt es.
Die Lösung war die Zeile.
Bei mir sah es so aus
Code: Alles auswählen
IF ::getColumn( j ) :colorBlock <> NIL
EVAL( ::getColumn( j ) :colorBlock )
ELSEIF ::getColumn( j ) :colorBlock = NIL
::getColumn( j ):dataArea:SetCellColor( nRow, NIL, GraMakeRGBColor( ::aRGB ), lRedraw )
ELSE
::getColumn( j ):dataArea:SetCellColor( nRow, NIL, GraMakeRGBColor( ::aRGB ), lRedraw )
ENDIF
Ich danke dir für die Mühe.