Hallo sakura,
vielen Dank für Deine schnell Hilfe! Habe diese Zeile in meine Funktion eingefügt und es klappt jetzt so, wie ich das gern hätte.
Der Vollständigkeit halber hänge ich hier noch den Quelltext an, falls mal jemand ein ähnliches Problem hat.
Delphi-Quellcode:
procedure TFAuf.dbg32DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
parr : array[0..2] of string =(cRAB, cZSM, cA);
var
s : string;
begin
// die zelle ist markiert und/oder selektiert
// dann sollen die Standard-Farben verwendet werden (weiß auf navy)
if (gdSelected in State) or (gdFocused in State) then exit;
{ ansonsten soll die Farbe in Abhängigkeit eines Strings der
angezeigten Datenbank geändert werden
Hinweis: die Farben sind hier nur zu Testzwecken ohne Rücksicht
darauf, ob sie zueinander passen, frei gewählt worden}
s := TabPP.FieldByName('PosArt').AsString;
// Number of String - ermöglicht case-Auswertung von Strings
// -1, wenn s nicht in Array vorhanden ist sonst 0 für's Erste, usw.
case NofStr(s, parr) of
0: begin
dbg32.Canvas.Brush.Color := clBlue;
dbg32.Canvas.Font.Color := clYellow;
end;
1: begin
dbg32.Canvas.Brush.Color := clRed;
dbg32.Canvas.Font.Color := clAqua;
end;
2: if TabPP.FieldByName('SummenKopf').AsBoolean then begin
dbg32.Canvas.Brush.Color := clGreen;
end;
end;
dbg32.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
mfg
eddy