• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Dbgrid С Цветной Строкой

  • Автор темы novachok
  • Дата начала
N

novachok

Подскажите как можно закрасить всю строку одним цветом а ячейку другим?
У меня закрашивается или вся строка или только ячейка. А нужно так: пользователь клацнул по ячейке, она выделяется одним цветом, и эта-же строка сначала и до конца светлосерым цветом. У меня только ячейка закрашивается! как закрасить светлосерым цветом???
 
S

sinkopa

Подскажите как можно закрасить всю строку одним цветом а ячейку другим?
У меня закрашивается или вся строка или только ячейка. А нужно так: пользователь клацнул по ячейке, она выделяется одним цветом, и эта-же строка сначала и до конца светлосерым цветом. У меня только ячейка закрашивается! как закрасить светлосерым цветом???
Код:
type
THDBGrid = class(TCustomDBGrid);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
RowIsActive: Boolean;
CellIsSelected : Boolean;
begin
CellIsSelected := (gdSelected in State);
with THDBGrid(Sender) do
begin
RowIsActive := (DataLink.ActiveRecord = Row-1);
end;

with TDBGrid(Sender) do
begin
if CellIsSelected then
Canvas.Brush.Color := $00FFDA8C // голубой
else if RowIsActive then
Canvas.Brush.Color := $00EFEFEF // светло-серый
else
Canvas.Brush.Color := clWindow;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

end;
 
M

MisterSpock

В принципе, стандартно перехватывается событие OnDrawColumnCell, и вперёд. Это вообще универсально, перехватывать обраьотчик рисования конкретного объекта, не только DBGrid касается.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!