DBGridEH 如何设置某一行的颜色

iefus 2011-06-03 03:50:23
DBGridEH的某一列的值有Y和N,
现在要把值为Y的那一行设置颜色,怎样实现
...全文
926 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luquansen 2011-06-04
  • 打赏
  • 举报
回复
总共20分你也蹭啊 呵呵

[Quote=引用 5 楼 dropme 的回复:]
帮顶,蹭分~
[/Quote]
dropme 2011-06-03
  • 打赏
  • 举报
回复
帮顶,蹭分~
iefus 2011-06-03
  • 打赏
  • 举报
回复

procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if (column.FieldName = 'DEL') and (column.Field.Value = 'Y') then
begin
DBGridEh1.Canvas.Brush.Color := clYellow;
end;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


我写了这行代码,但是DEL列中值为Y的一行,颜色没有变化
kye_jufei 2011-06-03
  • 打赏
  • 举报
回复
DBGridEh1.Canvas.Brush.Color:=clSilver;        
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
abcdwell 2011-06-03
  • 打赏
  • 举报
回复
Delphi 7里DBGridEh里行变颜色的代码

例如在DBGridEh的OnDrawColumnCell事件里输入如下代码:

if  ADOQuery1.FieldByName('status').AsString='True'  then   //如果条件成立
begin
DBGridEh1.Canvas.Brush.Color:=clSilver; //行底色变色
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

另一种:

if ADOQuery1.FieldByName('status').AsString='True' then //如果条件成立
begin
DBGridEh1.Canvas.Font.Color:=clMaroon; //行字体变颜色
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

abcdwell 2011-06-03
  • 打赏
  • 举报
回复
根据字段值内容的不同在dbgridEH中来分颜色显示

procedure TfrmBdDetail.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if adoquery1.fieldbyname('合计数量').AsInteger> adoquery1.fieldbyname('KC').AsInteger then
begin
(Sender as TDBGridEH).Canvas.Brush.Color := $008080FF;
end;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

5,913

社区成员

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

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