TTabSet
我有一个 TestComplete 测试,它使用TabIndex
属性选择一个选项卡:
Tab.TabIndex = 1
这很好用。但是,我注意到该选项卡上的某些对象需要启用单击事件。也就是说,我如何通过TabIndex
涉及某种点击事件来选择选项卡项?
TTabSet
我有一个 TestComplete 测试,它使用TabIndex
属性选择一个选项卡:
Tab.TabIndex = 1
这很好用。但是,我注意到该选项卡上的某些对象需要启用单击事件。也就是说,我如何通过TabIndex
涉及某种点击事件来选择选项卡项?
TabIndex
您可以调用TTabSet
'ItemRect
方法通过其索引获取选项卡的坐标,然后将这些坐标传递给 TestComplete 的方法,而不是给 赋值Click
。这是一个例子:
Sub Main
Set tabSet = Sys.Process("Project1").VCLObject("Form1").VCLObject("TabSet1")
For i = 0 To tabSet.Tabs.Count
ClickTab tabSet, i
Delay 1000
Next
End Sub
Sub ClickTab(TTabSet, ItemIndex)
Dim rect, x, y
Set rect = TTabSet.ItemRect(ItemIndex)
x = (rect.Left + rect.Right) / 2
y = (rect.Top + rect.Bottom) / 2
TTabSet.Click x, y
End Sub
但是,这种方法要求:
ItemRect
,可用于 TestComplete)。ItemRect
方法调用(否则此方法将被 Delphi 的智能链接器排除在 EXE 之外,因此 TestComplete 将无法使用它)。此外,如果您的选项卡控件的选项卡多于显示的选项卡(即Tabs.Count
> VisibleTabs
),您需要滚动它以首先显示所需的选项卡。例如,您可以使用以下FirstIndex
属性执行此操作:
Sub ClickTab(TTabSet, ItemIndex)
If ItemIndex >= TTabSet.FirstIndex + TTabSet.VisibleTabs Then
TTabSet.FirstIndex = ItemIndex
End If
Dim index, rect, x, y
index = ItemIndex - TTabSet.FirstIndex
Set rect = TTabSet.ItemRect(index)
x = (rect.Left + rect.Right) \ 2
y = (rect.Top + rect.Bottom) \ 2
TTabSet.Click x, y
End Sub