在视图的重画事件中写代码: procedure TDispatchStatForm.tvDListHeaderCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var ARect :TRect; TableDate:TDatetime; begin ARect := AViewInfo.Bounds; TableDate := AViewInfo.GridRecord.Values[ColumnName.Index];//ColumnName换成你表中在cxgrid中的列名。 if TableDate-Now<=1 then ACanvas.Canvas.Font.Color := clRed else ACanvas.Canvas.Font.Color := clBlack; ACanvas.Canvas.FillRect(ARect); SetBkMode(ACanvas.Canvas.Handle,TRANSPARENT); end;
procedure TForm15.cxgrdbndtblvwCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var vCurrDat : TDateTime; begin vCurrDat := AViewInfo.GridRecord.Values[2]; if vCurrDat > Now then begin ACanvas.Canvas.Brush.Color := clYellow; end; end;
procedure TDispatchStatForm.tvDListHeaderCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
ARect :TRect;
TableDate:TDatetime;
begin
ARect := AViewInfo.Bounds;
TableDate := AViewInfo.GridRecord.Values[ColumnName.Index];//ColumnName换成你表中在cxgrid中的列名。
if TableDate-Now<=1 then
ACanvas.Canvas.Font.Color := clRed
else
ACanvas.Canvas.Font.Color := clBlack;
ACanvas.Canvas.FillRect(ARect);
SetBkMode(ACanvas.Canvas.Handle,TRANSPARENT);
end;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
var
vCurrDat : TDateTime;
begin
vCurrDat := AViewInfo.GridRecord.Values[2];
if vCurrDat > Now then
begin
ACanvas.Canvas.Brush.Color := clYellow;
end;
end;