今天在开发凯达ERP的时候,碰到了cxGrid关于根据取到的Cell值改变整行记录的Text颜色。
基本思路是:
1、用cxStyleRepository控件先设置几种不同的样式。
2、根据相关事件改变cxGrid的Text颜色
问题: 找不到哪个事件
解决问题:
如下例
在tcxGrid1DBTableView 的 CustomDrawCell 事件中写。
假如性别字段为 ColumnSex.
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var str:string;
begin
str:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[ColumnSex.Index], varString));
if str='男' then
begin
ACanvas.Canvas.Brush.Color :=clred;
ACanvas.canvas.Font.Color := clblack;
end
else if str='女' then
begin
ACanvas.Canvas.Brush.Color :=clgreen;
ACanvas.canvas.Font.Color := clblack;
end;
if AViewInfo.Selected then
begin
ACanvas.Canvas.Font.Color := clwhite;
ACanvas.Canvas.Brush.Color :=clNavy ;
end;
end;