简体   繁体   English

如何使对象在QTP中全局可用

[英]How to make object available globally in QTP

In the following code: 在下面的代码中:

systemutil.Run "C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe"

WinEdit
WinButton


Public Function WinEdit
  Set objDialog=Description.Create
  objDialog("micclass").value="Dialog"

  Set objWinEdit=Description.Create
  objWinEdit("micclass").value="WinEdit"

  set WinEditCount=Dialog(objDialog).ChildObjects(objWinEdit)
  msgbox WinEditCount.count
End Function

Public Function WinButton
  Set objWinButton=Description.Create
  objWinButton("micclass").value="WinEdit"

  set WinButtonCount=Dialog(objDialog).ChildObjects(objWinButton)
  msgbox WinButtonCount.count   
End Function

The objects which are made in WinEdit function, are limited to that function only. WinEdit函数中创建的对象仅限于该函数。 I want to use the objects created in WinEdit function to be reused in WinButton function. 我想使用在WinEdit函数中创建的对象以在WinButton函数中重用。

The whole point of functions is to encapsulate logic. 功能的重点是封装逻辑。 If you declare a variable in a function it defaults to being private to this function, you can declare it globally but this is usually discouraged since it creates dependencies between the functions. 如果在函数中声明变量,则默认为该函数私有,则可以全局声明它,但通常不建议这样做,因为它会在函数之间创建依赖关系。

You can do something like this (which will initialize desc only once). 您可以执行类似的操作(只会将desc初始化一次)。

Foo
Bar

Dim desc ' global variable

Private Function InitDesc
    If IsEmpty(desc)  Then
        Set desc= Description.Create()
    End If
End Function

Public Function Foo
    InitDesc

End Function

Public Function Bar
    InitDesc
End Function

给对象变量指定一个唯一的名称,将其放在记事本文件中,然后将该文件与脚本关联

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM