Акжан в сети - На уровень вверх(VCL) Как изменить цвет отмеченных записей в DBGrid?

Hапример, так:

DefaultDrawing:=False;
....
procedure TfrmCard.GridDrawColumnCell(Sender: TObject; constRect: TRect;
  DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  Index : Integer;
  Marked, Selected: Boolean;
begin

  Marked := False;
  if (dgMultiSelect in Grid.Options) and THackDBGrid(Grid).Datalink.Active then
    Marked:=Grid.SelectedRows.Find(THackDBGrid(Grid).Datalink.Datasource.Dataset.Bookmark,Index);

  Selected := THackDBGrid(Grid).Datalink.Active and (Grid.Row-1 = THackDBGrid(Grid).Datalink.ActiveRecord);

  if Marked then
  begin
    Grid.Canvas.Brush.Color:=$DFEFDF;
    Grid.Canvas.Font.Color :=clBlack;
  end;

  if Selected then
  begin
    Grid.Canvas.Brush.Color:=$FFFBF0;
    Grid.Canvas.Font.Color :=clBlack;
    if Marked then
      Grid.Canvas.Brush.Color:=$EFE3DF; { $8F8A30 }
  end;

  Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

где

THackDBGrid = class(TDBGrid)
  property DataLink;
  property UpdateLock;
end;

Vadim Puzanov

vadim@mimex.krasnoyarsk.su (2:5090/20)

Обратите внимание на обьявление класса THackDBGrid. Таким образом можно получить доступ к приватным полям, свойствам и методам класса, что, к сожалению, приходится делать, если авторы исходного класса оказались не предусмотрительны.