我在应用程序中使用了默认样式“Amethyst Kamri”。我的 DBgrid 选择的行颜色会根据样式而变化。但我想更改选定行的边框颜色和背景颜色。我使用以下问题的答案更改字体样式。
https://stackoverflow.com/a/9472000
现在我想改变颜色。这个怎么做?
我在应用程序中使用了默认样式“Amethyst Kamri”。我的 DBgrid 选择的行颜色会根据样式而变化。但我想更改选定行的边框颜色和背景颜色。我使用以下问题的答案更改字体样式。
https://stackoverflow.com/a/9472000
现在我想改变颜色。这个怎么做?
您首先需要从 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;
这是最终结果: