Autor Beitrag
Hendrik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: 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

ausblenden Quelltext
1:
gdselected in State					


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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 21.02.03 09:35 
ja habe ich schon rausgefunden ....

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: 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:

_________________
"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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324



BeitragVerfasst: Di 02.09.03 14:32 
Hey! Hier der Quellcode (Die Farben sind in einer Stringliste gespeichert) :

ausblenden 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[1of
    '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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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.