DBGrid 在DrawDBGridDataCell事件中添加自绘制代码后要求 DBGrid的字段域 自动按照数据集添加 .此时 字段 如果是英文  时可以用 如下方法解决(举个例子)         
Fieldbyname('UnLockID').DisplayLabel:= '开锁器编号';
         
Fieldbyname('UnLockID').DisplayWidth:= 10;但是本人一直搞不明白 为什么 如果数据集中如果没有记录存在时  DBGrid又恢复为原来样子 自绘制代码根本不起作用.
请高手执教.

解决方案 »

  1.   

    //DBGrid1DrawDataCell事件dbGrid1.Columns[0].Title.caption:='字段标题';
      

  2.   

    谢谢 本来是想通过 在DBGrid 在DrawDBGridDataCell事件中添加自绘制代码来改变某一行记录的颜色的.但是这样的话  必须让DBGRid的显示字段自己添加 而不能在设计时添加.(本人数据表 里面的字段都是英文的 在界面上要显示汉文的) 所以
    运行时用代码来控制
    Fieldbyname('UnLockID').DisplayLabel:= '开锁器编号';
             
    Fieldbyname('UnLockID').DisplayWidth:= 10;可是 如果数据表 时空的 话 Fieldbyname('UnLockID').DisplayLabel:= '开锁器编号';
             
    Fieldbyname('UnLockID').DisplayWidth:= 10;
    就不起作用
      

  3.   

    Ok  解决 问题 在DrawColumnCell 里面再
    Fieldbyname('UnLockID').DisplayLabel:= '开锁器编号';
             
    Fieldbyname('UnLockID').DisplayWidth:= 10;就可以了  ^_^