-Statt StringGrid1 würde ich (Sender as TStringGrid) nehmen.
-ich würde auf with verzichten
Delphi-Quellcode:
procedure TfrmMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
gr: TStringGrid;
begin
gr := (Sender as TStringGrid);
if not Odd(ARow) and not (gdFixed in State) then
begin
gr.Canvas.Brush.Color := TColor($D9D9C0);
gr.Canvas.FillRect(Rect);
gr.Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
end;
if (state = [gdSelected]) then
begin
gr.Canvas.Brush.Color := TColor($FFCC99);
gr.Canvas.FillRect(Rect);
gr. Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);
end;
end;
Ich vermute mal, dass die 1. Spalte fixiert ist.