delphi中dbgrid中行的定位及着色实现
在对一个数据库系统进行操作的时候,发现不能对dbgrid控件中的数据行定位及在定位到某行后无法对当前行进行明显的标志(例如改变颜色),在往上查找了很多资料,发现基本没有对这个内容的介绍,包括一些动态设顶行的颜色等文章讲的都是在数据初始化时做的操作,而没有在数据源刷新后的重新定位功能,所以下决心解决这个问题,通过一上午对delphi帮助的研究与查看相关的资料,稍有小成,现写出来与各位同行共同学习,不当之处请多指教. 【程序编程相关:Delphi2005初步感受】 1 问题的提出 【推荐阅读:DBGrid使用全书(四)】 首先查找ttable与tquery控件没有发现能够直接定位数据行的方法,同样查找dbgrid也没有找到相应的能够直接定位到某行数据的函数,然后我就从数据集的类上查找,经过不断努力,终于在tdataset中发现了一个方法:gotobookmark,这个方法能够使当前的dbgrid中的记录指针指向你需要指定的行. 【扩展信息:DBGrid 应用全书(一)】 2 解决的办法 在找到这个方法后,问题还只解决了一半,还必须把当前指针指向的数据行改变颜色,就是说必须用一个明显的方式去标志当前选中的行(出了在dbgrid上的那个小的不明显的书签外)这个很显然就是在dbgrid控件中实现了,在dbgrid控件中有一个事件ondrawdatacell,重载这个方法就可以实现指定的数据行的颜色的改变了. 具体的使用过程如下: (1) 动态定位数据行 //=============================================================== //过程名: dydbgdataline //作者: haitian //日期: 2003-02-22 //功能: 根据用户指定的条件自动移动到dbgrid控件中符合此条件的某行数据上 //输入参数: // svalue:当前需要移动到的行的值; // tab:当前dbgrid中对应的表的数据;... 下一页