当前位置: 代码迷 >> PB >> 自定义事件能传入参数吗?该怎么处理
  详细解决方案

自定义事件能传入参数吗?该怎么处理

热度:160   发布时间:2016-04-29 10:29:06.0
自定义事件能传入参数吗?
我有一个自定义事件,里面有一个REF型的参数,想传进去处理后将值带回.
如果您要问我为啥不用函数,是因为这个是在一个窗口的打开对象里的,是OPENUSEROBJECT()打开
在打开对象前不知道对象名,对象名用参数传入.想用此对象处理完后将所得的值返回到窗口中.而在未知对象名的情况下,不能直接调用对象中的函数.只能通过事件来做.

所以有题目中问题?
若此方案不能解决,请问有其他比较好的方案吗?

------解决方案--------------------
事件可以 ref 参数,
但是函数也可以 dynamic
------解决方案--------------------
script最上面有一些操作,最高处是标题,不多说了
对于事件的脚本
接下来是三个下拉框,最左选对象,中间选事件,第三个选择脚本所在的继承级次是在那个祖先对象里还是在当前对象.
再往右有连个3横格的小图标.点击第一个就出来输入参数的地方了,可以通过右键菜单增删参数


你也可以在你那个对象上建函数,一样使用

------解决方案--------------------
动态调用
try
window.dynamic function( ref object )
catch(RuntimeError re)
messagebox('提示','调用出错')
end try
------解决方案--------------------
可以,在定义事件时,参数选中reference即可


------解决方案--------------------
楼主的意思是事件名是动态的,可以放在变量里,而且事件还有参数

建议楼主用实例变量或者全局来实现参数的传递问题,即自定义事件不用参数,把参数放在实例变量或者全局变量里

事件调整可以用

string ls_event
ls_event = 'ue_1'
w_1.triggerevent(ls_event)

即可

别的好像没有好办法
------解决方案--------------------
openuserobject的第一个参数,既可以是一个类别名称也可以是一变量。
The name of the user object you want to display. You can specify a user object defined in the User Object painter (which is a user object datatype) or a variable of the desired user object datatype. 

例如:动态的增加一个按钮,那么可以
w_emp.OpenUserObject(commandButton)

也可以:
commandButton cb_1
w_emp.OpenUserObject(cb_1)

然后就可以通过:
cb_1.trigger event clicked() 来调用它




------解决方案--------------------
恭喜呀
  相关解决方案