散分帖
UP--3~5分
讨论--10~20分
精辟--40~50分嗯,不够再开帖

解决方案 »

  1.   

    DrawDataCell(ARect, DrawColumn.Field, AState);
    DrawColumnCell(ARect, ACol, DrawColumn, AState);
    一个是列,一个是单元格
    可能是:)
    兄弟我可是大力支持了,剩下的就看兄弟你了^__^
      

  2.   

    DrawColunmCell
    是Dbgrid生成每一列的时候触发该事件
    DrawDataCell 
    是向Dbgrid中填充数据时触发该事件如果想让Dbgrid的某一列特别显示
    一般是在onDrawColunmCell事件里写代码
    比如:
    DBGrid1.Canvas.Brush.Color:=cl3Dlight;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);如果是对Dbgrid中的某条记录做相应的处理
    那一般就在onDrawDataCell中写相应的代码
      

  3.   

    TDBGrid的显示分两步完成,第一步是画单元格,DrawColumnCell(ARect, ACol, DrawColumn, AState);
    ARect是单元格的矩形区,ACol是该单元格的行值...在完成单元格的绘制后,如果DefuatlDraw=true,那么VCL就会自动向单元格填充数据(将数据画在DBGrid界面上)。第二步就是数据的输出举行区域是DrawDataCell(ARect, DrawColumn.Field, AState);中的ARect确定,数据的话从DrawColumn.Field获取。如果将DefualtDraw=false,那么你就应该手动调用TDBGrid的DefaultDrawDataCell(ARect, DrawColumn.Field, AState)函数填充数据,或者用自己的填充函数来实现数据的现实。