在DBGRID的ondrawdatacell里面判断
if dataset1.findfield('money').value > 5000 then
dbgrid1.canvas.font.color := clRed
else
dbgrid1.canvas.font.color := clGreen;
if dataset1.findfield('money').value > 5000 then
dbgrid1.canvas.font.color := clRed
else
dbgrid1.canvas.font.color := clGreen;
解决方案 »
- dbgrideh 中的数据类型
- IndyTCPServer的问题,在线等,急急急!!!
- Delphi7 下如何把工程编译为Unicode字符型??
- 请问能再网页里使用Tchart图形控件吗,应该如何做啊(要载网页历史是显示变化的图形数据)
- 高手请进,有关SQL问题
- 如何从技术角度完成网络传输速度的可调。
- 高分求:用MediaPlayer能不能有控制条显示?用什么控件能在播放音频文件时可以调整位置?谢谢!
- 在DBGrid控件中,怎样使输入当前行后,就可以保存?
- (高分求教,急)数据库分类统计报表并各自求和?用QREPORT上的控件如何实现。
- 新生成EXCEL的SHEET放到相应的位置
- 怎么一个文本框中的keypress事件没反应
- 用什么函数判断在一个access数据库中的某个表是否存在?小弟急需!
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
//整列
if TDBGrid(Sender).DataSource.DataSet.FieldByName('金额').AsFloat > 5000 then begin
TDBGrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
首先必须将dBGrid的DefaultDraw属性置为false,DrawColumnCell事件才会有效。
如果要整行变颜色,如 zswang(伴水)所写。
如果要单格变颜色,就得如下所示:
if Column.FieldName='金额' then
if TDBGrid(Sender).DataSource.DataSet.FieldByName('金额').AsFloat > 5000 then begin
TDBGrid(Sender).Canvas.Font.Color := clRed;
end
else
TDBGrid(Sender).Canvas.Font.Color := clGreen
else
TDBGrid(Sender).Canvas.Font.Color := clGreen;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);