В Delphi, как я могу изменить цвет линий сетки в TDBGrid?
Я использую компонент TDBGrid в приложении Delphi, когда я меняю цвета строк, линии сетки становятся нечеткими или почти невидимыми.
Итак, кто-нибудь может показать нам, как изменить цвет линий сетки?
Я имею в виду: как изменить цвет границ ячеек (см. Следующую картинку)
Границы клеток
1 ответ
Решение
Вы ищете
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 пиксель вокруг прямоугольной области, которая не заполняет внутреннюю часть прямоугольника шаблоном Brush. Чтобы нарисовать границу, используя Pen вместо этого, используйте метод Polygon