xitsmex
Dronton2 прав. Рисовать можно только границы оставив рисование текста стандартному обработчику. Вот пример рисования границ без текста. Выдрал почти как есть и не упрощал:
Код: procedure TfrmCm.dbbtvPt_CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
const
BCOLOR = $00800000;
var
FOldColor: TColor;
ARect: TRect;
begin
ARect := AViewInfo.Bounds;
ACanvas.FillRect(ARect);
FOldColor := ACanvas.Brush.Color;
if (AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 0 then begin
AViewInfo.Borders := [bLeft, bRight, bBottom];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bTop], 1);
end else begin
AViewInfo.Borders := [bLeft, bTop, bRight];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bBottom], 1);
end;
ACanvas.Brush.Color := FOldColor;
end;
Dronton2 прав. Рисовать можно только границы оставив рисование текста стандартному обработчику. Вот пример рисования границ без текста. Выдрал почти как есть и не упрощал:
Код: procedure TfrmCm.dbbtvPt_CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
const
BCOLOR = $00800000;
var
FOldColor: TColor;
ARect: TRect;
begin
ARect := AViewInfo.Bounds;
ACanvas.FillRect(ARect);
FOldColor := ACanvas.Brush.Color;
if (AViewInfo.Item as TcxGridDBBandedColumn).Position.RowIndex = 0 then begin
AViewInfo.Borders := [bLeft, bRight, bBottom];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bTop], 1);
end else begin
AViewInfo.Borders := [bLeft, bTop, bRight];
ACanvas.DrawComplexFrame(ARect, BCOLOR, BCOLOR, [bBottom], 1);
end;
ACanvas.Brush.Color := FOldColor;
end;