Идёт загрузка страницы...

htp://aptem.net.ru





Различные цвета строк в DBCtrlGrid

Кто-нибудь знает как установить другие цвета для строк DBCtrlGrid?

Используйте событие drawColumnCell. И не забудьте выставить defautlDrawing в False


    procedure TMain.ProjectGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
projectGrid.canvas.brush.color := clWindow;
projectGrid.canvas.fillRect(rect);
if gdSelected  in state then
begin
projectGrid.canvas.brush.color := clHighlight;
if fsBold in projectGrid.canvas.font.style then
begin
projectGrid.canvas.font.color := clHighlightText;
projectGrid.canvas.font.style := [fsBold];
end
else
projectGrid.canvas.font.color := clHighlightText;
end
else if gdFocused in state then
begin
projectGrid.canvas.brush.color := clWindow;
if fsBold in projectGrid.canvas.font.style then
begin
projectGrid.canvas.font.color := clWindowText;
projectGrid.canvas.font.style := [fsBold];
end
else
projectGrid.canvas.font.color := clWindowText;
end
else if gdFixed in state then
begin
projectGrid.canvas.brush.color := clHighlight;
if fsBold in projectGrid.canvas.font.style then
begin
projectGrid.canvas.font.color := clHighlightText;
projectGrid.canvas.font.style := [fsBold];
end
else
projectGrid.canvas.font.color := clHighlightText;
end;
with globalDataModule.qProjects do
begin
// тестовая запись. Устанавливаем свойства для перекрытия заданных по умолчанию;
if fieldByName('EST_COMPL_DATE').asDateTime < date then
projectgrid.Canvas.font.color := clRed;
if compareStr(fieldByName('STAT_CODE').asString, 'HD') = 0 then
projectgrid.Canvas.font.color := clOlive;
if  (compareStr(fieldByName('CHANGED').asString, 'Y') = 0) and
(fieldByName('ASSIGN_EMP_ID').asInteger = userRecord.UserId) then
projectgrid.Canvas.font.style := [fsBold];
end;
projectGrid.canvas.textOut(rect.left+2, rect.top+2, column.field.text);
end;
[000296]