Розфарбовування і зміна вмісту комірок tcxgrid (з набору dev express)

Delphi. Компоненти і Класи. TStringGrid і TDrawGrid

procedure TDirectoryClientsListContracts.grClientsCodeDBTableView1CustomDrawCell (Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); // встановлюємо следуюший обробник на CustomDrawCell компанента TcxGrid
Var
lTextToDraw. string;
lColFont. TFont;
begin
lColFont: = ACanvas.Font; // зберігаємо налаштування шрифта для поточної комірки

lTextToDraw: = trim (AViewInfo.GridRecord.DisplayTexts [5]); // зчитуємо вміст 5ого стовпчика, стовпець повинен бути доданий в таблицю TcxGrid, але може бути не видимим
if lTextToDraw = 'True' then lColFont.Style: = [fsItalic]; // перевіряємо значення ліченої осередки, і встановлюємо курсив

lTextToDraw: = trim (AViewInfo.GridRecord.DisplayTexts [6]);
if lTextToDraw = 'False' then lColFont.Color: = clRed; // перевіряємо значення ліченої осередки, і фарбуємо в червоний колір

ACanvas.Font: = lColFont; // встановлюємо отримані виділення для всього рядка

if ((AViewInfo.Item.Index = 4) and (trim (AViewInfo.GridRecord.DisplayTexts [4]) = '30 .12.1899 ')) then // якщо ми переглядаємо 4й стовпець, порівнюємо вміст з нульовою датою
begin
ACanvas.Canvas.FillRect (AViewInfo.Bounds); // при бажанні можемо змінити форматування комірки, як описано раніше, але залишаємо загальне для рядка форматування
ACanvas.DrawText ( '-', AViewInfo.Bounds, 0); // виводимо замість нульової дати "-" (мінус)
ADone: = True; // дозволяємо переписати значення осередки
end;

Аналогічним чином відбувається робота зі стандартним TStringGrid і TBDGrid.