收录日期:2018/12/11 04:19:54 时间: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(没日没夜) :
  不用了解了,你给的就是我想得到的答案。谢谢!
我的那個程序是給特定行上色的

有谁在linux下用jbuilder、oracle和weblogic建网站吗? 我的WORD变样了,如何改回来? 为什么把表单提交到WEB-INF下的jsp文件就报404错误,有没有解决的办法。 心情郁闷,有点颓废,日复一日 … 问一下一个注册问题 关于在页面中调word的问题 WriteBuffer()怎么处理longvarchar类型 用VB程序怎样向Https的URL提交表单? 记录合并的复杂 查询,请高手来 分值可加! 为什么更新后的数据库中文是乱码 【叶帆开源区】VBScript脚本运用(脚本程序与宿主程序的交互) 400分求VB写的远程控制类代码,实现木马的功能 十万火急!!! 我的Asp 总是提示“未与信任SQL Server连接相关联”,在线等待!!! turbo c 3.0 编译问题 [求助]如何利用ADOTable或者ADOQuery取出一条记录中的字段的个数? 如何用VB代码进行3721的卸载!!! 简单的一个问题,请求给出解答(2叉数的)算法求解! 求助!!IE打不开Applet小程序??? 我这个连接池的测试程序写错了吗? -------------很初级的问题,请大家回答的详细点。----------- 请问如何在treeview上实现模糊查找啊,急,在线等!!! 有没有比这个简单和快速的方法呢? 怎样用VB程序实现客户端连接中间层呀? 过完这个星期就开始了 谁可以帮我看一下这个分页代码,那里错了。分页不成功 求救 我觉得一个很难的问题?请赐教 怎样得到*.exe文件得Release版本 对话框中操作系统菜单! 怎样在VB中判断表中插入或删除数据?