Zioma
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Если интересно, то я это делаю на Дельфях. Но суть, впринципе, не меняется. В обработчике OnCustomDrawCell пишешь код(пример моей процедуры): procedure TfrmActs.ActsGridViewCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var ARec : TRect; ATextToDraw : String; Val : integer; IsImage : boolean; Align : integer; procedure SetTextToDraw; begin ATextToDraw := AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index]; end; begin SetTextToDraw; ARec := AViewInfo.Bounds; Val := VarAsType(AViewInfo.GridRecord.Values[ViewFlag.Index], varInteger); ACanvas.Canvas.Brush.Color:=$00FAE6E6; if AViewInfo.GridRecord.Selected then ACanvas.Canvas.Brush.Color:=clMoneyGreen; ACanvas.Canvas.FillRect(ARec); if (AViewInfo is TcxCustomGridCellViewInfo) and (AViewInfo.Item.Index=ViewFlag.Index) then begin ACanvas.Canvas.FillRect(ARec); // Здесь в зависимости от Val рисуется картинка. Таким же образом можна раскрасить строчку case Val of 1: ilMarker.Draw(ACanvas.Canvas, ARec.Left+3, ARec.Top, 2); 2: ilMarker.Draw(ACanvas.Canvas, ARec.Left+3, ARec.Top, 1); 3: ilMarker.Draw(ACanvas.Canvas, ARec.Left+3, ARec.Top, 0); end; ATextToDraw:=''; end; ............................. ADone:=True; ................ if ADone then ACanvas.DrawText(ATextToDraw, AViewInfo.Bounds, Align); ................. Если будут вопросы - обращайся. |