Cambiar el color de las filas en un StringGrid.

Utiliza un código similar al siguiente en el evento OnDrawCell’:

procedure TLo_Que_Sea.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
                                          Rect: TRect; State: TGridDrawState);
var
   S: String;
begin
   if ((0 < ARow) and (0 < ACol)) then
   begin
      // Esto dibuja una de cada 3 líneas en color...
      if (0 = (ARow mod 3)) then
         StringGrid1.Canvas.Brush.Color := clRed  // ... rojo...
      else
         StringGrid1.Canvas.Brush.Color := clTeal; // ... el resto en verde
      // Dibujar el fondo
      StringGrid1.Canvas.FillRect(Rect);
      // Obtener el texto de la celda
      S := StringGrid1.Cells[ACol, ARow];
      // Si no es una cadena en blanco...
      if ('' <> S) then
      begin
         // Dejar un par de pixeles a la izquierda para el texto
         Rect.Left := Rect.Left + 2;
         // ... dibujar
         Windows.DrawText(StringGrid1.Canvas.Handle, // "Device context"
                          PChar(S),                  // Cadena a pintar
                          Length(S),                 // Longitud de la cadena
                          Rect,                      // Rectángulo de dibujo
                          (DT_NOCLIP or              // Sin recortar: va más rápido
                           DT_NOPREFIX or            // No valorar el carácter "&"
                           DT_SINGLELINE or          // Una línea
                           DT_LEFT or                // Alineada a la izquierda
                           DT_VCENTER));             // Centrada verticalmente
      end;
   end;
end;