当前位置:主页>销售管理软件> 列表

cxGrid 5,怎样根据某字段的值改变行颜色? 找新疆管家婆财务软件

财务软件版1楼: 我搜索过了,大家的方法都是不理想:
要么改变了整个表格行的颜色而不是相应哪条记录行的颜色。要么是刚打开颜色还对,记录指针变动后颜色就不对了。
注意,CXGRID是GRID模式。

2楼: procedure TFrmOrdersPayoff.Grid1ColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
TDBGrid(Sender).Canvas.Font.Color := clBlack;
if not SPProOrdersPayoff.FieldByName(''CheckOrders'').AsBoolean then
begin
if (gdSelected in State)or(gdFocused in State) then
TDBGrid(Sender).Canvas.Brush.color := $00FF80FF
else
TDBGrid(Sender).Canvas.Brush.color := $008080FF;
end
else
begin
if (gdSelected in State)or(gdFocused in State) then
TDBGrid(Sender).Canvas.Brush.color := $00FBDFBD
else
TDBGrid(Sender).Canvas.Brush.color := clWhite;
end;
TDBGrid(Sender).DefaultDrawColumnCell(rect,datacol,column,state);


end; 如记账软件下载

3楼: 是DEV的CXGRID而非标准空间DBGRID

4楼: 对CXGRID来说怎样根据某字段的值改变行颜色,在其自带的Demo中有示例。但不太方便的是只能根据表格中存在的列的字段值进行判断,而如果要根据不存在于表格中列的字段则不太好办。

5楼: 谢谢楼上,问题刚好就是表格中的一列。

6楼: procedure TwDingCang.cxListCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
xval: string;
begin
//判断是否自己需要的列
if AViewInfo.Item.Caption = ''提单号'' then
begin
//取值
xval:= AViewInfo.Value;
//判断
。。。。
//设置颜色
if xval > 0 then
ACanvas.Canvas.Font.Color:= clRed
else
ACanvas.Canvas.Font.Color:= clBlue;
end;
end;

财务软件版7楼: 谢谢楼上。
我要的是整行都变色,而你的是某行的某列变色。

8楼: 在cxGrid1DBTableView或其它views的OnCustomDrawCell事件中写:
if AViewInfo.GridRecord.DisplayTexts[cxGrid1DBTableView1TFBZ.Index] = ''1'' then
ACanvas.Canvas.Font.Color := clRed;
百试不爽!
给分!

9楼: 在cxGrid1DBTableView或其它views的OnCustomDrawCell事件中写:
if AViewInfo.GridRecord.DisplayTexts[字段名称.Index] = 某个值 then
ACanvas.Canvas.brush.Color := clRed;
ACanvas.FillRect(AViewInfo.Bounds);

10楼: jiajiajia888的方法不错,谢了!

11楼: 分呢

12楼: 多人接受答案了。 如新疆管家婆财务软件