某列的一些数据符合条件就用红色表示
在dbgrid中很容易实现,但cxgrid本人
不太熟,不知哪位高手知道。
在dbgrid中是这样的
if query1.FieldByName('all').asstring>40 then
begin
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end
else
begin
dbgrid1.Canvas.Font.Color:=clblue;
dbgrid1.Canvas.Brush.color:=clyellow;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
在dbgrid中很容易实现,但cxgrid本人
不太熟,不知哪位高手知道。
在dbgrid中是这样的
if query1.FieldByName('all').asstring>40 then
begin
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end
else
begin
dbgrid1.Canvas.Font.Color:=clblue;
dbgrid1.Canvas.Brush.color:=clyellow;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
在OnDrawColumnCell事件写以上代码就行了
注意cxgrid是可以分多级的
对cxview级进行操作
假如性别字段为 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;