Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Farbe aktive Zeile in Listbox/XbpBrowse [Erledigt]

Beitrag von Jan »

Wie kann ich die Farbe auslesen? Setzen ist kein Problem, aber auslesen?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Beitrag von Tom »

Code: Alles auswählen

XbpColumn:DataArea:GetCellColour(<nLinePos>,@nFgCol,@nBgCol)
Es gibt keine Zeilenfarbe, sondern immer nur Zellenfarben. "nBgCol" ist optional.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Beitrag 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.
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Farbe aktive Zeile in Listbox/XbpBrowse

Beitrag von Jan »

Hallo Jimmy,

ja, genau die hab ich gebraucht. Danke.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

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

Beitrag 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
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

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

Beitrag 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()
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

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

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

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

Beitrag von UliTs »

Danke!
Ich kann es mir leider erst am Montag anschauen.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten