如何让DBGRID下的每一行根据条件显示不同的颜色

cfire 2000-05-26 11:34:00
如:有一个DBGRID,第一个字段是‘是否’打印(逻辑型),
我想让值为 T 的这一行显示为红色,
为 F 的这一行显示为蓝色。
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xnake 2000-05-27
  • 打赏
  • 举报
回复
的确是你想要的这种效果,我都试过,你是过没有?
fyje 2000-05-27
  • 打赏
  • 举报
回复
使用RXDBGRID能够十分简单的实现
weyoung 2000-05-27
  • 打赏
  • 举报
回复
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if T then DBGrid1.Canvas.Brush.Color:=clTeal;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
xnake 2000-05-26
  • 打赏
  • 举报
回复
在OnDrawDataCell里写如下
if Table1.FieldByName('print').Asboolean then
DBGrid1.Canvas.Font.Color := clRed
else
DBGrid1.Canvas.Font.Color := clBlue;
kxy 2000-05-26
  • 打赏
  • 举报
回复
1) DBGrid的DefaultDrawing设成False
2) customized painting in an OnDrawColumnCell event handler or an OnDrawDataCell event handler.
cfire 2000-05-26
  • 打赏
  • 举报
回复
各位大哥:
我说的是动态的显示行的颜色(不是列的),如下面是一个DBGRID:

是否打印(逻辑型)
T 〈- 这一行显示为 红色
F 〈- 这一行显示为 蓝色
F 〈- 这一行显示为 蓝色
T 〈- 这一行显示为 红色
.....

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧