知识大全 Delphi中DBGrid中行的定位及着色实现

Posted

篇首语:人生必须的知识就是引人向光明方面的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi中DBGrid中行的定位及着色实现相关的知识,希望对你有一定的参考价值。

Delphi中DBGrid中行的定位及着色实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

问题的提出  在对一个数据库系统进行操作的时候 发现不能对DBGrid控件中的数据行定位及在定位到某行后无法对当前行进行明显的标志(例如改变颜色) 在往上查找了很多资料 发现基本没有对这个内容的介绍 包括一些动态设顶行的颜色等文章讲的都是在数据初始化时做的操作 而没有在数据源刷新后的重新定位功能 所以下决心解决这个问题 通过一上午对DELPHI帮助的研究和查看相关的资料 稍有小成 现写出来和各位同行共同学习 不当之处请多指教      解决的办法  首先查找Ttable和Tquery控件没有发现能够直接定位数据行的方法 同样查找DBGrid也没有找到相应的能够直接定位到某行数据的函数 然后我就从数据集的类上查找 经过不断努力 终于在TdataSet中发现了一个方法 GoToBookmark 这个方法能够使当前的DBGrid中的记录指针指向你需要指定的行     在找到这个方法后 问题还只解决了一半 还必须把当前指针指向的数据行改变颜色 就是说必须用一个明显的方式去标志当前选中的行(出了在DBGrid上的那个小的不明显的书签外)这个很显然就是在DBGrid控件中实现了 在DBGrid控件中有一个事件OnDrawDataCell 重载这个方法就可以实现指定的数据行的颜色的改变了     具体的使用过程如下     ( )  动态定位数据行    //    //过程名  DyDbgDataLine    //作者   haitian    //日期        //功能   根据用户指定的条件自动移动到DBGrid控件中符合此条件的某行数据上    //输入参数     //     sValue 当前需要移动到的行的值     //     tab 当前DBGrid中对应的表的数据     //     dsr 当前需要操作的数据源     //返回值  无    //修改记录     //    Procedure DyDbgDataLine(sValue:string;tab:Ttable;dsr:TDatasource)    var      bookmark:TBookMark;    begin      //记录当前标记的行      bookmark:=self tab GetBookmark;     self tab first;     while not self tab Eof do     begin     if self tab FieldByName( cpbh ) AsString= sValue then     begin     bookmark:=self tab GetBookmark;     break;     end;     self tab Next;     end;     self dsr DataSet GotoBookmark(pointer(bookmark));    End;    说明 使用的表已经和当前显示界面上的DBGrid绑定     ( )  改变颜色标记当前数据行    首先把DBGrid的DefaultDrawing属性设为false;然后在OnDrawDataCell事件函数中调用下面的函数     //    //过程名  DrawLine    //作者   haitian    //日期        //功能   把Dbgrid中的指定的行改变颜色作为标记     //输入参数     //     zdm 字段名     //     Rect 需要出入的行的某个单元     //     Field 当前显示的域     //     state 当前行的显示状态     //     zdz 当前需要移动到的行的值     //     tab 当前DBGrid中对应的表的数据     //     dbg 当前需要操作的DBGrid     //返回值  无    //修改记录     //     procedurDrawLine(tab:Ttable;const Rect:Trect;Field:Tfield;state:TgridDrawState;dbg:TDBGrid)     begin     if (tab fieldbyname(zdm) asstring=zdz)then    begin    lor:=clred;    lor:=clyellow;    end;     dbg DefaultDrawDataCell(Rect Field State);     end; cha138/Article/program/Delphi/201311/8436

相关参考

知识大全 在DBGrid中设置不滚动的列及复制与粘贴[1]

在DBGrid中设置不滚动的列及复制与粘贴[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 在DBGrid中设置不滚动的列及复制与粘贴[2]

在DBGrid中设置不滚动的列及复制与粘贴[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 在DBGrid中选中多行删除与如何使标题文字居中

在DBGrid中选中多行删除与如何使标题文字居中  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 把DBGrid中的数据赋给数组

把DBGrid中的数据赋给数组  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

补中行湿汤

补中行湿汤的基本资料,相关中药材9味。补中行湿汤的基本资料补中行湿汤(《幼科证治大全》引《幼幼集》)处方陈皮、人参、茯苓、白术、、猪苓、肉桂、泽泻、苍术、厚朴、甘草。功能主治小儿诸般虚肿,小水不利者。

请阐述定位装置的技术状态中“定位器坡度”有哪些要求?

  标准值:160km/h及以下区段为1/10~1/5。160km/h以上区段为设计值。  安全值:160km/h及以下区段为1/10~1/5;160km/h~200km/h区段1/10~1/5。20

请阐述定位装置的技术状态中“定位器坡度”有哪些要求?

  标准值:160km/h及以下区段为1/10~1/5。160km/h以上区段为设计值。  安全值:160km/h及以下区段为1/10~1/5;160km/h~200km/h区段1/10~1/5。20

知识大全 Delphi字符串列表及应用(二)

Delphi字符串列表及应用(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  重复操作列表中

知识大全 Delphi字符串列表及应用(三)

Delphi字符串列表及应用(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  往字符串列表中

牙齿变色着色的原因是什么?

引起牙齿着色的因素很多,主要有以下几种:  氟牙症也称氟斑牙或斑釉牙。此症具有地域性发病的特点,主要是因为饮用水中氟含量过高所致。轻度者牙齿表面的牙釉质浑浊不透明,呈白垩色;中度者牙面呈黄色或棕黄色不