Seite 1 von 1

Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Verfasst: Do, 10. Jul 2014 9:00
von Jan
Wie kann ich die Farbe auslesen? Setzen ist kein Problem, aber auslesen?

Jan

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Verfasst: Do, 10. Jul 2014 13:19
von Tom

Code: Alles auswählen

XbpColumn:DataArea:GetCellColour(<nLinePos>,@nFgCol,@nBgCol)
Es gibt keine Zeilenfarbe, sondern immer nur Zellenfarben. "nBgCol" ist optional.

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Verfasst: Do, 10. Jul 2014 13:36
von Jan
Hallo Tom,

Danke für den Hinweis. Die Methode kannte ich in der Tat noch nicht. Allerdings hast Du da einen Tippfehler drin: Du schreibst "colour", also die englische variante. Das muß aber "color" lauten, also die amerikanische Schreibweise.

Allerdings habe ich mich wohl nicht ganz korrekt ausgedrückt. Ich will die Farbe nicht zur Laufzeit auslesen. Sondern dachte das es irgendeine Systemvariable gibt, in der das steht. Denn leider ist XBP_PP_COL_DA_HILITE_BGCLR bis zu einer manuellen Zuweisung immer NIL. Ich hatte gehofft, daß da bis zur manuellen Zuweisung der Systemwert drin steht. Dann wäre das einfach gewesen. Tut es aber dummerweise nicht.

Und nun ja, im XbpBrowse gibt es in der Tat keine Zeilenfarbe. Aber in der XbpListbox. Die beide die gleichen Farben für die aktuelle Zeile/das aktuelle Feld benutzen. Von daher wäre mir das vollkommen egal, welche von beiden ich nehme.

Jan

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Verfasst: Do, 10. Jul 2014 15:22
von AUGE_OHR
Jan hat geschrieben:Sondern dachte das es irgendeine Systemvariable gibt, in der das steht.

Code: Alles auswählen

XBPSYSCLR_HILITEBACKGROUND, XBPSYSCLR_HILITEFOREGROUND
wären die Systemfarben für ein markiertes Element.

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Verfasst: Do, 10. Jul 2014 16:22
von Jan
Hallo Jimmy,

ja, genau die hab ich gebraucht. Danke.

Jan

Re: Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Verfasst: Di, 09. Sep 2014 11:16
von UliTs
Jan hat geschrieben:Wie kann ich die Farbe auslesen? Setzen ist kein Problem, aber auslesen?

Jan
Hallo Jan,
wie kann ich die Farbe der aktiven Zeile (zur Laufzeit) ändern?

Uli

Re: Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Verfasst: Di, 09. Sep 2014 19:15
von AUGE_OHR
UliTs hat geschrieben:wie kann ich die Farbe der aktiven Zeile (zur Laufzeit) ändern?
o:Colorblock oder was meinst du ?
wenn du die Presentation Parameter XBP_PP_COL_* meinst : mit o:setPresParam()

Re: Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Verfasst: Fr, 12. Sep 2014 6:20
von Jan
Hallo Uli,

hmm. Wie soll ich Deine Frage verstehen? Ich ändere die Farbe einzelner Zellen oder Farben gerne nach Bedingungen in einem der Felder. Die Cursorzeile stelle ich mir eigentlich nur 1x ein, und das wars dann. Aber theoretisch müsste auch das nach Bedingungen gehen können.

Vorbedingung ist, das Du die Themes ausstellst. Ich mache das explizit nur für den Browse, alles andere soll ja je nach Theme angezeigt werden. Also:

Code: Alles auswählen

oBrowse:useVisualStyle := .F.
oBrowse:hScrollObject:useVisualStyle := .T.
oBrowse:vScrollobject:useVisualStyle := .T.
oBrowse:create()
Und die Farben dann so beim erstellen der Spalten:

Code: Alles auswählen

oSpalte := XBPColumn():new(oDlg, , , , {{XBP_PP_COL_DA_HILITE_BGCLR     , MEMVAR->gnDatenfeldBG                }, ;
                                        {XBP_PP_COL_DA_HILITE_FGCLR     , MEMVAR->gnFeldUeberschriften         }, ;
                                        {XBP_PP_COL_DA_CELLWIDTH        , nSpaltenBreite                       }, ;
                                        {XBP_PP_COL_DA_ROWWIDTH         , nSpaltenBreite                       }, ;
                                        {XBP_PP_COL_HA_CAPTION          , cHeader                              }, ;
                                        {XBP_PP_COL_HA_FGCLR            , MEMVAR->gnBrowseHeaderFG             }, ;
                                        {XBP_PP_COL_HA_BGCLR            , MEMVAR->gnBrowseHeaderBG             }, ;
                                        {XBP_PP_COL_HA_FRAMELAYOUT      , XBPFRAME_NONE                        }})
ENDIF
// Reihen farbig differenziert nach Geschlecht

IF lGeschlecht = .T.
   oSpalte:colorBlock := {|x| IIf(genealog->geschlecht = "M", ;
                                  {MEMVAR->gcFarbeMann, GraMakeRGBColor({250,254,255})}, ;
                                  IIf(genealog->geschlecht = "W", ;
                                      {MEMVAR->gcFarbeFrau, GraMakeRGBColor({250,254,255})}, ;
                                      {GRA_CLR_DARKGREEN, GraMakeRGBColor({250,254,255})}))}

 ELSE
   oSpalte:colorBlock := {|x| {MEMVAR->gcFarbeMann, GraMakeRGBColor({250,254,255})}}
ENDIF
Das ist jetzt Originalcode von mir, den Du natürlich anpassen müsstest. Hilft das weiter?

Jan

Re: Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Verfasst: Fr, 12. Sep 2014 14:10
von UliTs
Danke!
Ich kann es mir leider erst am Montag anschauen.
Uli