Ученый-компьютерщики решили облегчить жизнь юзеров и создали ракету системы "Земля - Провайдер".
Используйте событие 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 thenbegin
projectGrid.canvas.brush.color := clHighlight;
if fsBold in projectGrid.canvas.font.style thenbegin
projectGrid.canvas.font.color := clHighlightText;
projectGrid.canvas.font.style := [fsBold];
endelse
projectGrid.canvas.font.color := clHighlightText;
endelseif gdFocused in state thenbegin
projectGrid.canvas.brush.color := clWindow;
if fsBold in projectGrid.canvas.font.style thenbegin
projectGrid.canvas.font.color := clWindowText;
projectGrid.canvas.font.style := [fsBold];
endelse
projectGrid.canvas.font.color := clWindowText;
endelseif gdFixed in state thenbegin
projectGrid.canvas.brush.color := clHighlight;
if fsBold in projectGrid.canvas.font.style thenbegin
projectGrid.canvas.font.color := clHighlightText;
projectGrid.canvas.font.style := [fsBold];
endelse
projectGrid.canvas.font.color := clHighlightText;
end;
with globalDataModule.qProjects dobegin// тестовая запись. Устанавливаем свойства для перекрытия заданных по умолчанию;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;
В статье описывается способ окрашивания строк в DBCtrlGrid с помощью события drawColumnCell и изменения цвета текста в зависимости от условий.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.