十七、类定义查找函数

十七、类定义查找函数

类定义查找函数用于在一个或多个PB应用程序库(PBL)中查找对象、全局函数和类型,并提供他们的类定义信息、函数脚本和类型定义信息。

 

1、FindClassDefinition()

功  能:在一个或多个PB应用程序库(PBL)中查找指定的对象并提供该对象的类定义信息。

语  法:FindClassDefinition ( classname {,librarylist} )

参  数:classname:要得到信息的对象的名称;

librarylist:可选参数,它是一个字符串数组,其值为要在其中查找对象的应用库(PBL)的名称,该名称使用完整的路径名,如果省略了该参数,那么FindClassDefinition()函数按当前运行应用程序的库列表查找对象。

返回值:ClassDefiniton。返回包含指定对象类定义信息的ClassDefinition对象的引用。如果任何参数的值为NULL,FindClassDefinition ()函数返回NULL。

示  例:This example searches the libraries for the running application to find the class definition for w_genapp_frame:

ClassDefinition cd_windef

cd_windef = FindClassDefinition("w_genapp_frame")

 

This example searches the libraries in the array ls_libraries to find the class definition for w_genapp_frame:

ClassDefinition cd_windef

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

cd_windef = FindClassDefinition("w_genapp_frame", ls_libraries)

 

2、FindFunctionDefinition()

功  能:在一个或多个PB应用程序库(PBL)中查找指定的全局函数并提供该函数的脚本定义信息。

语  法:FindFunctionDefinition ( functionname {,librarylist} )

参  数:functionname:要得到其信息的全局函数的名称;

librarylist:可选参数,它是一个字符串数组,其值为要在其中查找对象的应用库(PBL)的名称,该名称使用完整的路径名,如果省略了该参数,那么FindFunctionDefinition()函数按当前运行应用程序的库列表查找对象。

返回值:ScriptDefiniton。返回包含指定函数脚本信息的对象的引用。如果任何参数的值为NULL,

FindFunctionDefinition()函数返回NULL。

示  例:This example searches the libraries for the running application to find the function definition for f_myfunction:

ScriptDefinition sd_myfunc

sd_myfunc = FindFunctionDefinition("f_myfunction")

 

This example searches the libraries in the array ls_libraries to find the class definition for w_genapp_frame:

ScriptDefinition sd_myfunc

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

sd_myfunc = FindFunctionDefinition("f_myfunction", ls_libraries)

 

3、FindTypeDefinition()

功  能:在一个或多个PB应用程序库(PBL)中查找指定的数据类型并提供该类型的类型定义信息。

语  法:FindTypeDefinition ( typename {,librarylist} )

参  数:typename:要查找类型信息的数据类型的名称,数据类型可以是简单数据类型(比如:Integer、Long 等),也可以是枚举类型或类;

librarylist:可选参数,它是一个字符串数组,其值为要在其中查找对象的应用库(PBL)的名称,该名称使用完整的路径名,如果省略了该参数,那么FindFunctionDefinition()函数按当前运行应用程序的库列表查找对象。另外,PB还要查找其内部库,以便找到内置定义,比如枚举类型或系统类。

返回值:TypeDefiniton。返回包含指定数据类型信息的对象的引用。如果任何参数的值为NULL,

FindTypeDefinition()函数返回NULL。

示  例:This example gets a TypeDefinition object for the grGraphType enumerated datatype. It checks the category of the type definition and, since it is an enumeration, assigns it to an EnumerationDefinition object type and saves the name in a string:

TypeDefinition td_graphtype

EnumerationDefinition ed_graphtype

string enumname

td_graphtype = FindTypeDefinition("grgraphtype")

IF td_graphtype.Category = EnumeratedType! THEN

        ed_graphtype = td_graphtype

        enumname = ed_graphtype.Enumeration[1].Name

END IF

 

This example is a function that takes a definition name as an argument. The argument is typename. It finds the named TypeDefinition object, checks its category, and assigns it to the appropriate definition object:

TypeDefinition td_def

SimpleTypeDefinition std_def

EnumerationDefinition ed_def

ClassDefinition cd_def

td_def = FindTypeDefinition(typename)

CHOOSE CASE td_def.Category

CASE SimpleType!

        std_def = td_def

CASE EnumeratedType!

        ed_def = td_def

CASE ClassOrStructureType!

        cd_def = td_def

END CHOOSE

 

This example searches the libraries in the array ls_libraries to find the class definition for w_genapp_frame:

TypeDefinition td_windef

string ls_libraries[ ]

ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl"

ls_libraries[2] = "c:\pwrs\framewk\windows.pbl"

ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl"

td_windef = FindTypeDefinition("w_genapp_frame", ls_libraries)

你可能感兴趣的:(PB系统函数介绍)