Для установки цвета шрифта, цвета фона и других свойств шрифта, лучше использовать свойство OnGetContentStyle.
Если использовать OnDrawCall, то при экспорте и печати данные будут неизменны, т.к. DevExpress Printing System получает стили у cxGrid и применяет их для печати.
Не обязательно кидать на форму TcxStyleRepository. Стили будем создавать прямо в коде события
procedure Grid1StylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
begin
if ARecord = nil then exit;
if AItem = nil then exit;// эту проверку тоже полезно делать, если используете данный параметр
if not ARecord.IsData then exit;
{если нужно красить только одну колонку, то нужно проверять AItem
if AItem.Index = TcxGridDBTableView(Sender).GetColumnByFieldName('имя_столбца_из_TDataSet').Index then
if AItem.Index = dbgApartREGION_NAME.Index then
}
if not VarIsNull(ARecord.Values[colColor.Index]) then
begin
if not Assigned(AStyle) then
AStyle := TcxStyle.Create(Sender);
AStyle.Color := ARecord.Values[colColor.Index];// закрашиваем фон
end;
end;
Не забывайте, что цвет шрифта определяется не AStyle.Font.Color, а AStyle.TextColor.