cxGrid怎样才能根据字段值行显示不同颜色了?(100)

  • 主题发起人 主题发起人 szqhebei
  • 开始时间 开始时间
S

szqhebei

Unregistered / Unconfirmed
GUEST, unregistred user!
比如 有两行,字段名叫HGYF,当这个值为合格时,此行显示颜色为蓝色,不合格的行为红色,大家帮忙看一下
 
有,在Grid的 View的 Grd_MainDBTableView1CustomDrawCell 事件里面。 if then ACanvas.Font.Color := clred; ACanvas.FillRect(AViewInfo.Bounds);你看看是不是行,應該是這類的操作,具體的自己去實驗。
 
可以控制到某行某列
 
if Trim(dbtvBussiness.DataController.DataSet.FieldByName('hgyf').AsString)='合格' then begin ACanvas.Brush.Color := clYellow; ACanvas.Font.Color := clBlack; ACanvas.FillRect(AViewInfo.Bounds); end else begin ACanvas.Brush.Color := clred; ACanvas.Font.Color := clwhite; ACanvas.FillRect(AViewInfo.Bounds); end;代码如上,问题是,如果第一条记录为不合格,则无论下面的为合格还是不合格,全部为不合格的颜色,大家帮忙看下问题出在哪
 
自己解决了,把代码贴出来让再有这问题的哥们看一下 if not VarIsNull(AViewInfo.GridRecord.Values[dbtvBussiness.GetColumnByFieldName('hgyf').Index]) then begin if AViewInfo.GridRecord.Values[dbtvBussiness.GetColumnByFieldName('hgyf').Index] = '不合格' then begin ACanvas.Canvas.Font.Color := clBlack; ACanvas.Brush.Color := clRed; end else if AViewInfo.GridRecord.Values[dbtvBussiness.GetColumnByFieldName('hgyf').Index] = '已处理' then begin ACanvas.Canvas.Font.Color := clBlack; ACanvas.Brush.Color := clgreen; end end;
 
这么长时候也没人来看看了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
748
import
I
I
回复
0
查看
594
import
I
后退
顶部