收录日期:2019/03/27 11:11:41 时间:2016/05/18 06:55:06 标签:VCL组件开发及应用
如题,着急等待,谢谢帮忙!
双击dbgrid,在谈出属性框中点'add all fields',
选中指定字段,在object inspector中color属性设置
怎么能够对DBgrid里面显示的数据进行上色
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;Field: TField; State: TGridDrawState);
  begin
     if Table1.Fieldbyname(′Salary′).value<=SpinEdit1.value then
        DBGrid1.Canvas.Brush.Color:=ColorGrid1.ForeGroundColor
   else
        DBGrid1.Canvas.Brush.Color:=ColorGrid1.BackGroundColor;
     DBGrid1.Canvas.FillRect(Rect);
     DBGrid1.Canvas.TextOut(Rect.left+2,Rect.top+2,Field.AsString);
  end;

怎么就不能够理解我的意思呢?
我从数据库里面选择出了数据,其中有一列数据比较重要,所以我想用红色来显示这一列,该怎么办啊!
这是我写的一个例子,你看看
procedure TForm15.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  i,j:integer;
begin
  i:=form15.DBGrid1.DataSource.DataSet.RecordCount;
  if i>0 then
  begin
    for j:=0 to i-1 do
    begin
      if form15.DBGrid1.DataSource.DataSet.FieldValues['zt']='未读' then
      begin
        datacol:=form15.DBGrid1.DataSource.DataSet.RecNo;
        if not form15.DBGrid1.SelectedRows.CurrentRowSelected then
          form15.DBGrid1.Canvas.Brush.Color:=clred;
        form15.DBGrid1.Canvas.Brush.Color:=clred;
        form15.DBGrid1.Canvas.Pen.Mode:=pmmask;
        form15.DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
      end;
    end;
  end;
end;
忘了
dbgrid属性中的option中的rowselect设置为true
在dbgrid的onDrawColumnCell中加入如下程序:
if “满足变色条件” then    
   dbgrid1.canvas.font.color:=clred;
else dbgrid1.canvas.font.color:=clblue;

dbgrid1.DefaultDrawColumnCell(rect,datacol,column.state);
还是没有了解到我的意思。
不用判断,直接是对某一列 是一列的数据进行上色。

zyrlxy(海妖)给解答的是整个DBGrid的数据数据都上色了,

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if column.Field.Value='條件表達式' then
  with DBGrid1.Canvas do
  begin
    brush.Color:=clred;
    font.Color:=clblue;
    dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
  end;
end;
不知道条件表达式是怎么样写,我这样写 '基本价' 或者'jbjia' 出现以下错误
"Invalid variant type conversion"
在dbgrid的OnDrawColumnCell事件中加入代碼:
if 等于特定行 then
  begin
  DBgrid1.Canvas.Brush.Color := clLime;
  DBgrid1.Canvas.font.Color := clBlue;
  end
else
  begin
  DBgrid1.Canvas.Brush.Color :=claqua;
  DBgrid1.Canvas.font.Color :=clred;
  end;
不明白楼主的意思
既然要把重要的那列选出来肯定是要通过判断的
dbgrid1.columns[0].color:=clred  //第一列的颜色
行的颜色,在这里有个例子,可以下来看看
http://www.kaer.com.cn/default.aspx
JassonYe(没日没夜) :
  不用了解了,你给的就是我想得到的答案。谢谢!
我的那個程序是給特定行上色的

关于winpcap统计模式 谁能提供一个注册版的加壳混淆工具啊。 很简单的一个问题。。。。。。 mfc 读bmp像素小问题求解(有代码)在线等 关于Main方法的参数问题? 求助,我在用visual web developer制作一个网站,想做个有文件上传功能的页面 如何用正则表达式替换数字和顿号之间的空格? 如何获取其他电脑的IP地址 数据库分页 求助MFC的SDI程序报错 C++解惑~谢谢 有谁能解释下这段代码呢? MFC怎么添加WM_onactivate事件的函数 文件 工程 工作区 C#写界面 C++写算法 求助 大侠帮我看看这道题吧。。。 急求→两表关联求总数,然后读出来显示到页面! PLC温度系统毕业设计(购买) 英语小笑话 我想学习sql 2005相关的操作,推荐下资料 csdn论坛那么快,用的什么存储机制? 求助:本人想用qt在linux平台上写个天气预报的软件 希望大家给点思路 windows mobile 后台发送邮件 动态创建div后获取Id问题(急) Java环境配置好了,不能运行,急 firefox下,为什么height实际与定义的不一样?? 新手使用struts2,启动tomcat报错……请求帮助 请教semop()函数的用法、含义 关于CORBA Applet的程序问题,利用appletviewer打开出差