在 Delphi 中,如何更改 TDBGrid 中网格线的颜色?
In Delphi, How can I change the color of grid lines in a TDBGrid?
我在 Delphi 应用程序中使用 TDBGrid 组件,当我更改行颜色时,网格线变得不清晰或几乎不可见。
那么,谁能告诉我们如何更改网格线的颜色?
我的意思是:如何改变单元格边框的颜色(见下图)
单元格边界
你在找
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
R: TRect;
begin
R:= Rect;
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
R.Offset(Column.Width, 0);
FillRect(R);
R:= System.Types.Rect(Rect.Left, Rect.Bottom - 1, Rect.Right, Rect.Bottom);
FillRect(R);
end;
end;
结果如下:
更好的方法(来自 Tom Brunberg 评论)是使用 FrameRect()
作为
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
FrameRect(Rect);
end;
end;
使用FrameRect() 在矩形区域周围绘制一个 1 像素宽的边框,该边框不会用画笔图案填充矩形的内部。
要改为使用 Pen 绘制边界,请使用 Polygon 方法
我在 Delphi 应用程序中使用 TDBGrid 组件,当我更改行颜色时,网格线变得不清晰或几乎不可见。
那么,谁能告诉我们如何更改网格线的颜色?
我的意思是:如何改变单元格边框的颜色(见下图)
单元格边界
你在找
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
R: TRect;
begin
R:= Rect;
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
R.Offset(Column.Width, 0);
FillRect(R);
R:= System.Types.Rect(Rect.Left, Rect.Bottom - 1, Rect.Right, Rect.Bottom);
FillRect(R);
end;
end;
结果如下:
更好的方法(来自 Tom Brunberg 评论)是使用 FrameRect()
作为
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
FrameRect(Rect);
end;
end;
使用FrameRect() 在矩形区域周围绘制一个 1 像素宽的边框,该边框不会用画笔图案填充矩形的内部。 要改为使用 Pen 绘制边界,请使用 Polygon 方法