Rational 识别 Delphi TDBGrid的解决方法_第1页
Rational 识别 Delphi TDBGrid的解决方法_第2页
Rational 识别 Delphi TDBGrid的解决方法_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页Rational识别DelphiTDBGrid的解决方法

'InitiallyRecorded:2023-4-2223:01:19

'ScriptName:First

StartApplication"""C:\DocumentsandSettings\Administrator\桌面\T\Project1.exe"""

WindowSetContext,"Caption=Form1",""

GenericObjectDblClick,"Class=TDBGrid;ClassIndex=1","Coords=168,27"

InputKeys"good"

GenericObjectClick,"Class=TDBGrid;ClassIndex=1","Coords=369,33"

WindowCloseWin,"",""

EndSub

用过delphi的人都知道TstringGrid有个Cell属性,我们可以利用robot函数SqaSetProperty给cell赋值完成上边要的功能,首先用robot来的guiinsert的objectproperties来抓取对象TDBGrid的属性,这样做是因为函数SqaSetProperty只能对robot抓取道的属性起作用,也就是说即使有cell属性,robot的objectproperties抓取不到这个属性,我们也无法实现前边的想法。用objectproperties抓取TDBGrid的属性后发现,只抓取到了部分属性,根本没有可以利用的cell属性,怎么办,利用delphienabler来做一次看是否可以得到更多的属性,我把sqasrv.pas(其实delphienabler的核心就是这个delphi单元文件)加入到工程文件中,重新编译(可能编译的时候有一些问题,我遇到的问题是Unit'oleAuto'isdeprecated,用$WARNUNIT_DEPRECATEDON/OFF编译开关,就可以解决了),重新录制脚本如下:(这回TDBGrid的属性基本都抓取到了)。

Sub

'InitiallyRecorded:2023-4-2223:38:55

'ScriptName:Second

StartApplication"""C:\DocumentsandSettings\Administrator\桌面\T\Project1.exe"""

WindowSetContext,"Name=Form1;Type=Form",""

GenericObjectDblClick,"Name=DBGrid1;Type=CustomGrid","Coords=93,30"

InputKeys"jack"

GenericObjectClick,"Name=DBGrid1;Type=CustomGrid","Coords=338,26"

WindowCloseWin,"",""

EndSub

可是仍然没有我们要的cell属性,只有columns属性,没有我需要的cell属性,怎么办?于是研究delphi的TDBGrid的源代码发现TDBGrid继承的TcustomGrid中有HideEdit,UpdateEdit等方法,说明在输入数据的时候TDBGird在后台是生成了一个输入文本框,焦点改变后这个文本框自动消失把数据输入到TDBGrid。这样我们只要能给这个EDIT的TEXT属性赋值同样可以实现,因为TDBGrid没有CELL属性,不能直接利用SQASetProperty函数给cell的focus属性赋值,只能利用点击这个cell来赋予它焦点,因为只有焦点在这个cell上后才会出现浮动的文本框,修改上边的脚本:

Sub

EndSub

虽然赋值成功,但是datagrid无法显示你需要的数据(这里需要研究一下),因为时间的缘故,就用第二种方式坐标的方式来实现,考虑多平台共享使用,写SetGridFocus函数,思路这样得到tdbgrid对象,得到其中column的属性宽高,计算坐标(这些都在函数内部实现),其中移动有个固定值24是追踪tdbgrid代码中defaultHeight为24

最后代码如下:

SubSetGridFocus(strObjectasString,strColasString,strRowasString,strValueasString)

DimiResultasInteger

DimiCountasInteger

DimColWidth()asinteger

DimiWidthasInteger

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论