Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - DB Grid - Farbe ausgewählter Datensatz
Hendrik - Do 20.02.03 18:25
Titel: DB Grid - Farbe ausgewählter Datensatz
Hallo
Ich habe programmiert, dass die Zeilen im DB Grid unterschiedlich gefärbt werden.
Allerdings wird jetzt nicht mehr die ausgewählte Zeile blau hinterlegt, sondern nur noch die Schrift in weiß angezeigt.
Das ist aber schlecht, da einige Zeilen auch weiß geblieben sind.
Kann ich diese Farbe irgendwie festlegen (ich habe schon geguckt, aber nichts gefunden)?
Horst - Do 20.02.03 22:13
hallo
wenn du dich für die kostenlose RxLib erwärmen kannst,
kann ich die sagen wie es geht, mit der Standard dbgrid
hatte ich damals auch schwierigkeiten.
Gruß
Horst
:wave:
UGrohne - Do 20.02.03 23:20
Du fragst einfach ab, in Deiner OnDrawCell-Proz, ob die Zelle Selected ist. Das geht mit gdselected in State Und dann kannst Du danach ja die Farbe der markierung ändern. Und probier einfach auch mal die Font-Farbe zu ändern, das müsste funktionieren, probiers einfach mal aus. Aber das mit dem balken funktioniert so bei mir. Is ganz einfach...
EDIT:
Ja, also das mit dem Schriftfarbe ändern funktioniert bei mir wunderbar über dbgrid.Canvas.Font.Color:=....
foxy - Fr 21.02.03 08:39
guden
ug ??
hmmm habe auch gerade das problem ... hab gerade schon im Forum gesucht aber kein befriedigendes ergebnis erhalten ...
du schriebst
alles gut und schön nur was ist "State" ????
das erkennt der compiler nicht ... oder hast du da eine Booleanische variable gesetzt?
UGrohne - Fr 21.02.03 09:29
Das Ereignis DrawColumnCell besitzt eine Variable State vom Typ TGridDrawState mit der man einige Sachen feststellen kann: Ist die Zelle selektiert, fokusiert oder gehört Sie zum festen Bereich.
Gruß
foxy - Fr 21.02.03 09:35
ja habe ich schon rausgefunden ....
Quelltext
1: 2: 3: 4:
| var DrawState: TGridDrawState; begin If gdselected in DrawState then Begin |
nur bis zu begin kommt er nicht ... :/
ich glaube ich hab irgend etwas vergessen ... ich kuck nomma nach aber erst ma KAFFEEEEEE :)
smiegel - Fr 21.02.03 09:39
Hallo foxy,
Du bringst da anscheinend etwas durcheinander. Das OnDrawColumnCell-Ereignis des DBGrids übergibt bereits eine Variable
State von Typ TGridDrawState.
Du musst den aktuellen Zeichenstatus mit
Quelltext
1:
| if (gdSelected in State) then |
abfragen. Um das zu erreichen, musst Du dafür keine Variable deklarieren.
Außerdem kann es nicht schaden, wenn Du 'mal in der Delphi-Hilfe vorbeischaust.
foxy - Fr 21.02.03 09:50
narf ....
ich glaube das frühe aufstehen bekommt mir nich :D
ne quatsch smiegel das war nicht der fehler :)
hab falsches ereignis benutzt :rofl:
BennyM - Di 02.09.03 10:31
Hallo,
du hast unten geschrieben
Zitat: |
Hallo
Ich habe programmiert, dass die Zeilen im DB Grid unterschiedlich gefärbt werden |
Das selbe habe ich auch vor nur bei mir funzts irgendwie nicht. Kannst du mir mal bitte den Quellcode mailen ?? Wäre echt klasse. Danke
Hendrik - Di 02.09.03 14:32
Hey! Hier der Quellcode (Die Farben sind in einer Stringliste gespeichert) :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| if fztable.FieldByName('Status').asstring<>'' then begin case fztable.FieldByName('Status').asstring[1] of '1' : fzgrid.Canvas.Brush.Color := strtoint(strl[16]); '2' : fzgrid.Canvas.Brush.Color := strtoint(strl[17]); '3' : fzgrid.Canvas.Brush.Color := strtoint(strl[18]); '4' : fzgrid.Canvas.Brush.Color := strtoint(strl[19]); '6' : fzgrid.Canvas.Brush.Color := strtoint(strl[20]); '7' : fzgrid.Canvas.Brush.Color := strtoint(strl[21]); '8' : fzgrid.Canvas.Brush.Color := strtoint(strl[22]); end; end; if (gdSelected in State) then fzgrid.Canvas.Brush.Color :=clNavy; fzgrid.DefaultDrawColumnCell(Rect, DataCol, Column, State) |
BennyM - Mi 03.09.03 08:51
Hallo, danke für den Quellcode aber ich habe es einwenig anders vor.
ich hol meine daten in mein dbgrid weis noch nicht wieviel sätze es sind und ich möchte das die erste zeile z.B. weis wird die zweite z.B. clNavy dann wieder weis navy weis navy usw.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!