0

我在应用程序中使用了默认样式“Amethyst Kamri”。我的 DBgrid 选择的行颜色会根据样式而变化。但我想更改选定行的边框颜色和背景颜色。我使用以下问题的答案更改字体样式。

https://stackoverflow.com/a/9472000

现在我想改变颜色。这个怎么做?

4

1 回答 1

1

您首先需要从 Vcl.DBGrids.TDBGrid 类继承 TDBGrid。并覆盖 Paint 过程。像这样 :

type
  TDBGrid = class(Vcl.DBGrids.TDBGrid)
  protected
    procedure Paint; override;
  end;

关于 Paint 程序:

procedure TDBGrid.Paint;
var
  i, X, Y: Integer;
begin
  inherited;
  Y := RowHeights[0] + 1;
  X := Width;
  for i := 1 to Self.RowCount - 1 do
  begin
    Y := Y + RowHeights[i] + 1;
    Canvas.Brush.Color := clRed;
    Canvas.FillRect(Rect(0, Y, X, Y + 1));
  end;
end;

这是最终结果:

在此处输入图像描述

于 2014-02-08T12:14:36.670 回答