SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1044|回复: 3
打印 上一主题 下一主题

关于EVENT和EVENT HANDLER

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2003-12-1 09:13:36 | 只看该作者

关于EVENT和EVENT HANDLER

我建立mannual的event,可以通过sendEvent来在控件间传递信息,以供event handler的method接收这个信息,做下一步处理。
比如:obj._sendEvent("myEvent",msg)。

问题是:如果是before或after的event,我怎么传递那个msg呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2003-12-1 09:48:22 | 只看该作者
在下才疏学浅,对于event和eventhandler了解不多。据我所知,obj._sendevent("myevent",msg)的msg是传递给eventhandler所对应的方法的参数,与event是before还是after无关。

不知我是否正确理解了你的意思?以上回应内容为个人理解,还请多多批评指正。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2003-12-1 12:22:48 | 只看该作者
问题是before或after类型的event是自动触发的。而manual类型的event是通过scl中调用_sendEvent来触发的。_sendEvent进行设置后,即例如_self_._sendEvent('myEvent',msg),可以传递参数msg给接收对象的event handler,而before或after那个传递的参数msg在什么地方进行设置,我在class Editor中没有找到。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2003-12-1 13:51:39 | 只看该作者
我的操作:
1、新建对象objTest
2、在objTest中添加新method---methodTest: public method MSG:input:char; put 'TEST'; put '*****'; put MSG; endmethod;
3、在objTest中添加新event---eventTest,其中send=Before,method name=methodTest
4、在objTest中添加新event handler---_self_.eventTest,其中method name=methodTest
5、新建frameTest,插入对象objTest,在init中写入objTest._sendEvent('eventTest', 'hello');

其结果是无论是before、after还是mannual,都能将'hello'传递并输出打印。
是不是我理解的有问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-5 19:17 , Processed in 0.566520 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表