Autor |
Beitrag |
Hendrik
      
Beiträge: 324
|
Verfasst: Do 20.02.03 18:25
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
      
Beiträge: 120
|
Verfasst: 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

|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: 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
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: 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
Quelltext
alles gut und schön nur was ist "State" ????
das erkennt der compiler nicht ... oder hast du da eine Booleanische variable gesetzt?
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: 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
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: 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 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: 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.
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Fr 21.02.03 09:50
narf ....
ich glaube das frühe aufstehen bekommt mir nich
ne quatsch smiegel das war nicht der fehler
hab falsches ereignis benutzt 
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
BennyM
      
Beiträge: 45
|
Verfasst: 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 
      
Beiträge: 324
|
Verfasst: 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
      
Beiträge: 45
|
Verfasst: 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.
|
|