|
tomGrid", "Coords=338,26"
''''Window CloseWin, "", ""
End Sub
虽然赋值成功,但是datagrid无法显示你需要的数据(这里需要研究一下),因为时间的缘故,就用第二种方式坐标的方式来实现,考虑多平台共享使用,写SetGridFocus函数,思路这样得到tdbgrid对象,得到其中column的属性宽高,计算坐标(这些都在函数内部实现),其中移动有个固定值24是追踪tdbgrid代码中defaultHeight属性为24
最后代码如下:
Sub SetGridFocus(strObject as String, strCol as String, strRow as String, strValue as String)
Dim iResult as Integer
Dim iCount as Integer
Dim ColWidth() as integer
Dim iWidth as Integer
Dim strColPos as Integer
Dim strRowPos as Integer
Dim strCor as String
Dim iTemp as integer
strColPos = 0
strRowPos = 0
iTemp = 0
SQAGetProperty strObject ,"Columns.Count", iCount
if iCount <> 0 then
Redim ColWidth(iCount - 1)
While iTemp < iCount
iResult = SQAGetProperty (strObject, "Columns.Items(" + CStr(iTemp) +").Width",iWidth)
ColWidth(iTemp) = iWidth
iTemp = iTemp + 1
wend
End if
strColPos = 20
if CInt(strCol) <> 1 then
for iTemp = 1 to CInt(strCol)-1
strColPos = strColPos+ ColWidth(iTemp-1)
next iTemp
End if
for iTemp = 1 to CInt(strRow)
strRowPos = 24 +strRowPos
next iTemp
strCor = "Coords=" & strColPos &","+CStr(strRowPos)
GenericObject Click, strObject, strCor
InputKeys strValue
stop
strCor = "Coords=" & strColPos &","+CStr(strRowPos + 24)
GenericObject Click, strObject, strCor
End Sub
上编写的还有很多疏漏的地方,对于浮动文本框赋值成功,却无法改动tdbgrid中的值没有深入研究,该函数在实际应用中还有个小问题,没有做到很完全“周到“ ,下回有时间改正。
备注:
最后我把代码进行优化和扩展,开发了针对grid的相关函数,下边是其中之一
//得到列数
Function GetColCount(sGridRecogStr as String) as Integer
Dim Result as Integer
上一页 [1] [2] [3] 下一页 [系统软件]InstallShield Express for delphi制作安装程序定… [常用软件]InstallShield Express制作Delphi数据库安装程序 [Delphi程序]为什么选择Delphi.Net ? [Delphi程序]《关于VisiBroker For Delphi的使用》(4) [Delphi程序]Delphi 程序员代码编写标准指南 [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro… [Delphi程序]Borland Delphi 9 的新特性 [Delphi程序]Delphi 键盘码表 [Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗? [Delphi程序]Delphi Access violations 问题的解决之道
|