Как изменить цвет границы выбранной строки и цвет фона включенного стиля DBGrid в delphi xe2?

Я использовал стиль по умолчанию "Аметист Камри" в приложении. И цвет выбранной строки моей DBgrid меняется в соответствии со стилем. Но я хочу изменить цвет границы выбранной строки и цвет фона. Я меняю стиль шрифта, используя ответ на следующий вопрос.

/questions/46625235/kak-pravilno-sdelat-risovanie-vladeltsem-vyibrannoj-polnoj-stroki-tdbgrid-esli-tdbgriddefaultdrawing-imeet-znachenie-false/46625261#46625261

Теперь я хочу изменить цвет. Как это сделать?

1 ответ

Сначала необходимо унаследовать TDBGrid от калибровки Vcl.DBGrids.TDBGrid. И переопределить процедуру Paint. Как это:

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

На процедуру рисования:

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;

И это конечный результат:

введите описание изображения здесь

Другие вопросы по тегам