Da du das im DrawCell machst, ist die Schleife am Schluss
imho sinnlos.
Delphi-Quellcode:
procedure TfrmMain.grdAnzeigeDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
a : integer;
begin
if (dayoftheweek(strtodate(grdAnzeige.Cells[acol, 0])) = 6) and not (gdFixed in State) then
with grdAnzeige do
begin
Canvas.Brush.Color := $0000c3ff;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
end; //färben des sonnabends
if (dayoftheweek(strtodate(grdAnzeige.Cells[acol, 0])) = 7) and not (gdFixed in State) then
with grdAnzeige do
begin
Canvas.Brush.Color := clred;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
end; //färben des sonntages
// for a := 2 to grdAnzeige.RowCount do
// begin
if grdAnzeige.Cells[acol,aRow] <> '' then //STATT "a" "aRow" eingesetzt
with grdAnzeige do
begin
canvas.Brush.Color := clskyblue;
canvas.FillRect(Rect);
canvas.TextOut(rect.Left + 2, rect.Top + 2, cells[acol, arow]);
end;
// end;
end;
Ob das allerdings dein Problem löst, habe ich jetzt nicht getestet. Kann aber gut sein, da du kein Else hast, wo du die Farben zurück setzt.