procedure TfrmVisitas.DibujarColorEnTabla(Sender: TObject; ColorCuadro: integer; Rect: TRect);
const
color: array[1..20] of tcolor = (clred, clBlue, clGreen, clAqua, clCream, clDkGray, clFuchsia, clLime, clLtGray, clMaroon, clMoneyGreen, clNavy, clGray, clOlive, clPurple, clSilver, clSkyBlue, clTeal, clWhite, clBlack);
var
posicionCuadro: TRect;
begin
(Sender as TRzDBGrid).Canvas.FillRect(Rect);
(Sender as TRzDBGrid).Canvas.Brush.Color := color[ColorCuadro];
(Sender as TRzDBGrid).Canvas.Pen.Color := clBlack;
posicionCuadro.Left := Rect.Left + ((Rect.Right - Rect.Left - COLOR_WIDTH) div 2);
posicionCuadro.Right := posicionCuadro.Left + COLOR_WIDTH;
posicionCuadro.Top := Rect.Top + ((Rect.Bottom - Rect.Top - COLOR_HEIGHT) div 2);
posicionCuadro.Bottom := posicionCuadro.Top + COLOR_HEIGHT;
(Sender as TRzDBGrid).Canvas.Rectangle(posicionCuadro);
if (ColorCuadro = 0) then
begin
(Sender as TRzDBGrid).Canvas.Brush.Color := clWhite;
(Sender as TRzDBGrid).Canvas.Pen.Color := clBlack;
(Sender as TRzDBGrid).Canvas.FillRect(posicionCuadro);
(Sender as TRzDBGrid).Canvas.Rectangle(posicionCuadro);
(Sender as TRzDBGrid).Canvas.MoveTo(posicionCuadro.Left, posicionCuadro.Top);
(Sender as TRzDBGrid).Canvas.LineTo(posicionCuadro.Right, posicionCuadro.Bottom);
(Sender as TRzDBGrid).Canvas.MoveTo(posicionCuadro.Right - 1, posicionCuadro.Top);
(Sender as TRzDBGrid).Canvas.LineTo(posicionCuadro.Left - 1, posicionCuadro.Bottom);
end;
end;