hur.cn - 华软网

 热门搜索

能不能这样创建非可视对象?

  作者:未知    来源:网络    更新时间:2017/12/5


pb里面创建可视觉对象可以用create using typestring,创建非可视对象有没有类似的方法?比如说typesting 里面放的是一个tpye的变量,能不能用openuserobject(,usingtypestring,)创建非可视对象.

我想实现这样的功能,不知道有没有办法

------华软网友回答------
n_dwr_service_parm lnvo_parm
lnvo_parm = Create n_dwr_service_parm


openuserobject是创建可视
------华软网友回复------
创建对象实例
对非可视的系统对象类型使用CREATE 语句创建对象实例实例生成后就可以使用点运算符. 引用对象的成员了CREATE 语句返回对象实例的句柄通过该句柄引用新生成的实例CREATE 语句有两种语法格式
语法一
objectvariable = CREATE objecttype
其中objectvariable 是数据类型为objecttype 的变量可以是全局变量实例变量
或局部变量objecttype 是对象数据类型
语法二
objectvariable = CREATE USING objecttypestring
其中objectvariable 是个变量可以是全局变量实例变量或局部变量其数据
类型要与将创建对象的类或该类的祖先类相同objecttypestring 是个字符串其值是要创
建对象类数据类型的名称
例如下面的语句创建一个事务对象实例
transaction DBTrans
DBTrans = CREATE transaction
DBTrans.DBMS = 'ODBC'
第二种语法格式可以在应用程序中动态选择对象类型并创建其实例例如假设uo_a_desc1 uo_a_desc2 都是uo_a 的继承对象则在应用程序中可使用条件语句实现对不同继承对象的实例化比如
uo_a uo_a_var
string ls_objectname
IF ... THEN
ls_objectname = "uo_a_desc1"
ELSE
ls_objectname = "uo_a_desc2"
END IF
uo_a_var = CREATE USING ls_objectname
需要注意的是CREATE 语句只能用于创建非可视对象可视对象的实例使用合适的OPEN 函数创建

------华软网友回复------
我把问题说错了:
真确的是
pb里面创建非可视觉对象可以用create using typestring,创建可视对象有没有类似的方法?比如说typesting 里面放的是一个tpye的变量,能不能用openuserobject(,usingtypestring,)创建可视对象.

我想实现这样的功能,不知道有没有办法

------华软网友回复------
有办法的,我给你详细讲解一下penuserobject,给我发消息,告诉我你的邮箱,我给你发篇文章!巨经典!
------华软网友回复------
还是贴上吧!大家共同学习一下!

OpenUserObject()
功能:
打开用户对象并在指定位置显示用户对象之后代码中就可以使用该用户对象的属性函数以及事件了与其他Open 类函数OpenUserObject()

也有两种语法格式语法一打开设计程序时已知数据类型的用户对象语法二打开程序设计时未知类型或需要动态更换的用户对象下面分别予以

介绍.
语法:一打开设计程序时已知数据类型的用户对象
语法:windowname.OpenUserObject ( userobjectvar {, x, y } )
参数:windowname 要在其上显示用户对象的窗口的名称userobjectvar 要显示的用户对象的名称可以指定用户对象画笔中定义的用户
对象名也可以是指定用户对象的变量名OpenUserObject()函数将打开的用户对象的引用放置在该参数中
x 可选项指定用户对象左上角在窗口上的X 显示位置以PBU 为单位默认值为0
y 可选项指定用户对象左上角在窗口上的Y 显示位置以PBU 为单位默认值为0
返回值:Integer 函数执行成功时返回1 发生错误时函数返回-1 如果任何参数的值为NULL 则OpenUserObject()函数返回NULL
用法:在应用程序访问用户对象的属性之前必须首先打开用户对象否则将引发应用程序运行错误但是如果在定义窗口时已经把用户对象放置

在窗口上那么这样的用户对象就不需要再在代码中打开了PowerBuilder 在打开窗口的同时会自动打开所有已经放置在窗口上的用户对象
OpenUserObject()函数在打开用户对象的同时也将把该用户对象的引用添加到窗口的Control 属性数组中使用OpenUserObject()函数

打开用户对象后在关闭放置该对象的窗口时PowerBuilder 并不会自动删除该用户对象它依然占用着系统资源应用程序需调用

CloseUserObject()函数来删除用户对象以释放用户对象占用的资源
OpenUserObject()函数创建用户对象后系统在更新显示或执行该函数的代码段运行完毕时显示用户对象比如如果应用程序在某个事件处理

程序中打开了几个用户对象那么这些用户对象将在该事件处理程序执行完毕后同时显示在屏幕上如果想每创建一个用户对象就在窗口中显示

一个用户对象那么可以这样做在每条OpenUserObject()函数之后执行一个更新窗口或窗口上可视控件外观属性的语句比如修改窗口的标题


OpenUserObject()函数与打开窗口的Open()函数十分相似当应用程序重复执行语法一的OpenUserObject()函数多次时它只打开一个用

户对象实例而激活用户对象多次但不是打开多个用户对象实例.
示例:
下面的代码在窗口w_test 的100, 500 位置打开并显示可视用户对象uo_test
uo_test 在用户对象画笔中定义并保存在应用库中
w_test.OpenUserObject ( uo_test , 100, 500 )
语法二:打开程序设计时未知类型或需要动态更换的用户对象
语法:windowname.OpenUserObject ( userobjectvar, userobjecttype {, x, y } )
参数:windowname 要在其上显示用户对象的窗口的名称
userobjectvar DragObject 类型的变量OpenUserObject()函数将打开的用户对象的引用放置在该参数中
userobjecttype string 类型其值为要显示用户对象的名称该对象必须是
userobjectvar 对象的子孙对象
x 可选项指定用户对象左上角在窗口上的X 显示位置以PBU 为单位默认值为0
y 可选项指定用户对象左上角在窗口上的Y 显示位置以PBU 为单位默认值为0
返回值:Integer 函数执行成功时返回1 发生错误时函数返回-1 如果任何参数的值为NULL 则OpenUserObject()函数返回NULL
用法在应用程序访问用户对象的属性之前必须首先打开用户对象否则将引发应用程序运行错误但是如果在定义窗口时已经把用户对象放置在

窗口上那么这样的用户对象就不需要再在代码中打开了PowerBuilder 在打开窗口的同时会自动打开所有已经放置在窗口上的用户对象
OpenUserObject()函数在打开用户对象的同时也将把该用户对象的引用添加到窗口的Control 属性数组中使用OpenUserObject()函数

打开用户对象后在关闭放置该对象的窗口时PowerBuilder 并不会自动删除该用户对象它依然占用着系统资源应用程序需要调用

CloseUserObject()函数来删除用户对象释放用户对象占用的资源
OpenUserObject()函数创建用户对象后系统在更新显示或执行该函数的代码段运行完毕时显示用户对象比如如果应用程序在某个事件处理

程序中打开了几个用户对象那么这些用户对象将在该事件处理程序执行完毕后同时显示在屏幕上如果想每创建一个用户对象就在窗口中显示

一个用户对象那么可以这样做在每条OpenUserObject()函数之后执行一个更新窗口或窗口上可视控件外观属性的语句比如更改窗口的标题

等当应用程序执行语法二格式的OpenUserObject()函数时PowerBuilder 打开由参数userobjecttype 指定类型的用户对象并将对该

对象实例的引用放置在参数userobjectvar 中应用程序可通过变量userobjectvar 在代码中操作打开的用户对象userobjecttype 参

数指定的用户对象并不会自动包含到你的可执行文件中要想在应用程序中包含该对象必须把它保存在PBD 文件PowerBuilder 动态链接库

中并与你的应用程序一起发行该动态链接库.
示例下面的代码在窗口w_test 的100, 500 位置打开并显示可视用户对象uo_test
uo_test 在用户对象画笔中定义并保存在应用库中iuo_test 是uo_test 类型的实例变量
w_test.OpenUserObject ( iuo_test,"uo_test", 100, 500 )


------华软网友回复------
好dd,谢谢楼上的
------华软网友回复------
不能的,openuserobject()是用来创建可视的
------华软网友回复------
你到底问的是什么啊!一会可视一会不可视???把我都弄糊度了。可视与不可视对象的创建方法我上边都讲给你了啊!
------华软网友回复------
pb里面创建非可视觉对象可以用create using typestring,创建可视对象有没有类似的方法?比如说typesting 里面放的是一个tpye的变量,能不能用openuserobject(,usingtypestring,)创建可视对象.

我想实现这样的功能,不知道有没有办法      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。