关于DBGrid的DrawColumnCell和DrawDataCell的区别和实际应用中的功能--来者有分

bluemeteor 2002-11-11 05:56:55
散分帖
UP--3~5分
讨论--10~20分
精辟--40~50分

嗯,不够再开帖

...全文
485 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ColdWolf 2002-11-12
  • 打赏
  • 举报
回复
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)函数填充数据,或者用自己的填充函数来实现数据的现实。



dyf2001 2002-11-12
  • 打赏
  • 举报
回复
up
heaseef 2002-11-12
  • 打赏
  • 举报
回复
up
xyue 2002-11-12
  • 打赏
  • 举报
回复
DrawColunmCell
是Dbgrid生成每一列的时候触发该事件
DrawDataCell
是向Dbgrid中填充数据时触发该事件

如果想让Dbgrid的某一列特别显示
一般是在onDrawColunmCell事件里写代码
比如:
DBGrid1.Canvas.Brush.Color:=cl3Dlight;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

如果是对Dbgrid中的某条记录做相应的处理
那一般就在onDrawDataCell中写相应的代码

CloneCenter 2002-11-12
  • 打赏
  • 举报
回复
楼主是想讨论还是想得到什么源代码?
bluemeteor 2002-11-12
  • 打赏
  • 举报
回复
这帖很没前途么?没人来就结帖了
guxueqing 2002-11-11
  • 打赏
  • 举报
回复
up
bluemeteor 2002-11-11
  • 打赏
  • 举报
回复
UP一个,明天结帖
goodloop 2002-11-11
  • 打赏
  • 举报
回复
up~~
cainiao000 2002-11-11
  • 打赏
  • 举报
回复
up,学习
blueshu 2002-11-11
  • 打赏
  • 举报
回复
DrawDataCell(ARect, DrawColumn.Field, AState);
DrawColumnCell(ARect, ACol, DrawColumn, AState);
一个是列,一个是单元格
可能是:)
兄弟我可是大力支持了,剩下的就看兄弟你了^__^

blueshu 2002-11-11
  • 打赏
  • 举报
回复
up先

5,388

社区成员

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

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