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

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

novachok

Подскажите как можно закрасить всю строку одним цветом а ячейку другим?
У меня закрашивается или вся строка или только ячейка. А нужно так: пользователь клацнул по ячейке, она выделяется одним цветом, и эта-же строка сначала и до конца светлосерым цветом. У меня только ячейка закрашивается! как закрасить светлосерым цветом???
 
Подскажите как можно закрасить всю строку одним цветом а ячейку другим?
У меня закрашивается или вся строка или только ячейка. А нужно так: пользователь клацнул по ячейке, она выделяется одним цветом, и эта-же строка сначала и до конца светлосерым цветом. У меня только ячейка закрашивается! как закрасить светлосерым цветом???
Код:
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;
 
В принципе, стандартно перехватывается событие OnDrawColumnCell, и вперёд. Это вообще универсально, перехватывать обраьотчик рисования конкретного объекта, не только DBGrid касается.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab