2015-09-01 4 views
1

В следующем коде:Как сделать доступным объект глобально в QTP

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 

объекты, которые сделаны в WinEdit функции ограничиваются только этой функции. Я хочу использовать объекты, созданные в функции WinEdit, для повторного использования в функции WinButton.

ответ

0

Весь смысл функций заключается в инкапсуляции логики. Если вы объявляете переменную в функции, она по умолчанию является частной для этой функции, вы можете объявить ее глобально, но это обычно обескураживает, так как создает зависимости между функциями.

Вы можете сделать что-то подобное (что инициализирует 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 
0

Дайте уникальное имя объекта переменной, поместить его в файл блокнота и связать этот файл в скрипт

Смежные вопросы