DCBROWSE mit Itemselected 2

Moderator: Moderatoren

Antworten
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

DCBROWSE mit Itemselected 2

Beitrag von Ewald »

Unglücklicherweise habe ich das Thema vor ein paar Tagen schon übereifrig als abgehakt markiert. Jetzt habe ich in dieser Sache doch noch ein kosmetisches Problem.
Standardmäßig schaltet die Farbe der Schrift in einem DCBrowse automatisch von schwarz auf weiss um, wenn ich den Cursor auf die Zelle setze und selbst keine Farben eingestellt habe.
Wenn ich mich da einmische und die Farben selbst wähle ist es aus damit. Die Schrift versucht krampfhaft in schwarz oder rot durch den blauen Balken zu leuchten. In Rot geht das noch, schwarze Schrift durch blauen Cursor ist aber kaum lesbar. Trotz Lesebrille und fast neuem TFT ;-)

Code: Alles auswählen

@ 2,1   dcbrowse obrowse alias "dbz" size 72,19 ;
        edit xbeBRW_ItemSelected ;
        mode 7 ;
        color {||if(dbz->agangold="X",{GRA_CLR_RED,GRA_CLR_WHITE},{GRA_CLR_BLACK,GRA_CLR_WHITE}) } ;
        cursormode XBPBRW_CURSOR_ROW ;
        RBSELECT 
Ich habe so richtig nichts gefunden, das mir weiterhilft. Wie kann ich denn wohl in diesem Beispiel erzwingen, dass die Farbe der Schrift sich augenfreundlich ändert ?
Wenn ITEMSELECTED dann Schrift = weiss - oder so ähnlich.
Kann mir da wohl bitte jemand mit einem Schnipsel Quellcode weiterhelfen ?

Danke
Ewald
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Koverhage »

Ewald,

probier mal MKCOLOR anstatt COLOR.
Gruß
Klaus
Paul Brem
Rookie
Rookie
Beiträge: 18
Registriert: Di, 11. Apr 2006 8:30
Wohnort: CH-8707 Uetikon

Re: DCBROWSE mit Itemselected 2

Beitrag von Paul Brem »

Versuch es mit dem Begriff PRESENTATION und den entsprechenden Werten im Array

z.Bsp.

apres:= ;
{ { XBP_PP_COL_HA_FGCLR, GRA_CLR_WHITE }, /* Header FG Color */ ;
{ XBP_PP_COL_HA_BGCLR, GRA_CLR_DARKGRAY }, /* Header BG Color */ ;
{ XBP_PP_COL_HA_ALIGNMENT, XBPALIGN_HCENTER }, /* Align Header */ ;
{ XBP_PP_COL_DA_ROWSEPARATOR, XBPCOL_SEP_DOTTED }, /* Row Sep */ ;
{ XBP_PP_COL_DA_COLSEPARATOR, XBPCOL_SEP_DOTTED }, /* Col Sep */ ;
{ XBP_PP_COL_DA_ROWHEIGHT, 20 }, /* Row Height */ ;
{ XBP_PP_COL_DA_CELLHEIGHT, 20 }, /* Cell Height */ ;
{ XBP_PP_COL_DA_HILITE_FGCLR, GRA_CLR_BLACK }, /* Cursor FG Color*/ ;
{ XBP_PP_COL_DA_HILITE_BGCLR, GRA_CLR_YELLOW } } /* Cursor BG Color*/


Viel Erfolg
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Wolfgang Ciriack »

Probier mal

Code: Alles auswählen

        color {||if(dbz->agangold="X",{GRA_CLR_RED,NIL},{GRA_CLR_BLACK,NIL}) } ;
Viele Grüße
Wolfgang
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Ewald »

@Wolfgang,
das wirkt sich nur auf den Hintergrund der Zelle aus, nicht auf die Schriftfarbe. GRA_CLR_BLACK und GRA_CLR_RED sollen ja GRA_CLR_WHITE werden, wenn der Cursor drauf steht. So sieht das zumindestens aus, wenn man nicht vorher an den Farben manipuliert.

@Klaus
damit hat es auch nicht funktioniert - oder besser gesagt, ich habe es nicht hinbekommen.

@Paul
Das wollte ich eigentlich verhindern. Dieses Aray ist ja fast länger als mein gesamter Qellcode ;-)
Da müßte ich dann mal suchen, ob es irgendwas gibt, was die Schriftfarbe bei HILITE beeinflußt.

Es ist offensichtlich eine Standardeinstellung, die irgendwo verloren geht. Also sagt mir mein Gefühl, dass das mit einem Parameter zurückzuholen ist ...
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Wolfgang Ciriack »

Hallo Ewald,
genau deswegen habe ich das geschrieben, das NIL bewirkt keine Änderung der Hintergrundfarbe und die Standard Umschaltung
der schwarzen Schrift auf weiß bleibt erhalten.
Viele Grüße
Wolfgang
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Ewald »

Ein Bild sagt mehr als tausend Worte habe ich mal gelesen:
Also, in diesem Beispiel habe ich auf der linken Seit im Browse die Schiftfarben vorgegeben. Wenn gewählt (x=gesetzt) dann rot auf weiss, ansonsten schwarz aus weiss.
Quellcode siehe oben.
In der rechten Hälfte ist ein Browse ohne jede Änderung der Standardoptionen.
Auf der linken Seite bleibt die Schrift hinter dem Cursor "010 SÄGEN" schwarz.
Rechts leuchtes Sie weiss durch den Cursor. Das ist irgendwo ein Standard

Ich möchte erreichen, dass auch auf der linken Seite die Schrift weiss durch den Cursor leuchtet. Oder muss ich da evtl. was an den Eigenschaften des Cursors ändern ?

Bild
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: DCBROWSE mit Itemselected 2

Beitrag von AUGE_OHR »

Ewald hat geschrieben:Ein Bild sagt mehr als tausend Worte habe ich mal gelesen:
...
Auf der linken Seite bleibt die Schrift hinter dem Cursor "010 SÄGEN" schwarz.
Rechts leuchtes Sie weiss durch den Cursor. Das ist irgendwo ein Standard

Ich möchte erreichen, dass auch auf der linken Seite die Schrift weiss durch den Cursor leuchtet. Oder muss ich da evtl. was an den Eigenschaften des Cursors ändern ?
Nein du brauchst eine "andere" XbpColumne Class :)

http://www.xbaseforum.de/viewtopic.php? ... olumnLocal
http://www.xbaseforum.de/viewtopic.php? ... olumnLocal

wenn das noch nicht reicht suche mal im Alaska Forum nach XbpColumnLocal oder J.A. Diego Kerejeta
gruss by OHR
Jimmy
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Ewald »

:shock: Ich wollte nicht das Rad neu erfinden - ich will nuuuuur, den Standard wieder haben :D
Ich bin sicher, da geht noch was.
Wenn nicht, nehme ich einen gelben Cursor (würg), aber durch den kann man gut durchsehen.
Das hieße aber, die Schlacht Mensch gegen Software wäre in diesem Fall verloren. Und das will ich nicht.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Wolfgang Ciriack »

Hallo Ewald,
habe es gerade noch einmal probiert, so gehts:

Code: Alles auswählen

@1,1 DCBROWSE oBrowse ALIAS "ens" SIZE 120,20  ;
     CURSORMODE XBPBRW_CURSOR_ROW ;
     FIT ;
     ITEMSELECTED {|| DC_ReadGuiEvent(DCGUI_EXIT_OK,Getlist) }

DCBROWSECOL PARENT oBrowse ;
      FIELD ens->ennr ;
      HEADER "ENNR"  WIDTH 10 ;
      COLOR {|| {GRA_CLR_RED, NIL} }

DCBROWSECOL PARENT oBrowse ;
      FIELD ens->erzeuger ;
      HEADER "ERZEUGER"  WIDTH 15 ;
      COLOR {|| {GRA_CLR_GREEN, NIL} }
Viele Grüße
Wolfgang
Juergen
UDF-Programmierer
UDF-Programmierer
Beiträge: 92
Registriert: Di, 19. Dez 2006 19:37
Wohnort: Düsseldorf
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Juergen »

Hallo Ewald,

den COLOR-Codeblock aus DCBROWSE entfernen.

Wenn dann noch nötig das Presentationsarray anpassen:

aPres := ;
{ { XBP_PP_COL_HA_FGCLR, GRA_CLR_WHITE }, ; usw. .

Änderungen der Schriftfarbe aufgrund einer Bedingung sollten im COLOR-Codeblock von
DCBROWSECOL erfolgen.

dcbrowsecol ......
color {||if(dbz->agangold="X",{GRA_CLR_RED,GRA_CLR_WHITE},{GRA_CLR_BLACK,GRA_CLR_WHITE}) }

Gruß

Jürgen
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Ewald »

1000 ergebnislose Versuche später...
Ich werd zum Elch.
Die Wurzel allen Übels ist wohl, dass die Standardfarbe der Schrift (im Browse), die hinter dem Cursor auf Weiss umschaltet, nicht GRA_CLR_BLACK,GRA_CLR_WHITE ist.
Dieser Code funktioniert jetzt genau so wie gewünscht.

Code: Alles auswählen

@ 2,1  dcbrowse obrowse alias "dbz" size 72,19 ;
        edit xbeBRW_ItemSelected ;
        RBSELECT ;
        cursormode XBPBRW_CURSOR_ROW ;
        color {||if(dbz->agangold="X",{GRA_CLR_RED,nil},{nil,nil}) }  
Bild

Schönes Wochenende
Ewald
Ewald
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Sa, 08. Apr 2006 14:07
Wohnort: Datteln
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCBROWSE mit Itemselected 2

Beitrag von Ewald »

Was mich da noch interessieren würde. Hat jemand eine Ahnung, auf welche Farbeinstellungen Express++ in diesem Fall bei nil zrückgreift, wenn man nirgendwo was an den Einstellungen geändert hat ?
Diese gesamten Einstellungen verhalten sich bei mir übrigens unterschiedlich, wenn ich statt einer DBF ein Array browse. :( Das will ich dann aber lieber mal nicht vertiefen.

Code: Alles auswählen

color {||if(dbz->agangold="X",{GRA_CLR_RED,nil},{nil,nil}) }
Antworten