关于继承,这样的现象正常吗?为什么?
我在定制的标准可视类u_datawindow的Clicked事件写代码 Return 1
在窗口中的dw_1(u_datawindow实例)的Clicked事件写代码 // , 并选中"Extend Ancestor Script"
结果dw_1的Clicked事件还是“有效”
如果把dw_1的Clicked事件代码清空,则dw_1的Clicked事件就“无效”了
我觉得两种做法应该都能使Clicked“无效”才比较合理啊,为什么出现这种情况呢?
问题点数:20、回复次数:10Top
1 楼shahand(死磕)回复于 2003-06-01 13:50:21 得分 3
选择overrideTop
2 楼waterstony(王小石)回复于 2003-06-01 13:50:21 得分 0
你选中"Extend Ancestor Script"
那么除了dw_1的click事件有效外,他的父窗口u_datawindow的click事件也有效
选中"overrid .."就能使父类事件无效。Top
3 楼dberror()回复于 2003-06-01 14:06:04 得分 0
override就是不继承,对吗?
还有,你们可能误会我的意思了,我的目的是要使父类代码对dw_1能起作用(所以才选中Extend Ancestor Script),可是当我在dw_1中加了一行注释return 1却似乎不起作用了,所以我觉得很奇怪Top
4 楼dberror()回复于 2003-06-01 14:06:55 得分 0
override就是不继承,对吗?
还有,你们可能误会我的意思了,我的目的是要使父类代码对dw_1能起作用(所以才选中Extend Ancestor Script),可是当我在dw_1中加了一行注释//后,父类代码return 1却似乎不起作用了,所以我觉得很奇怪
Top
5 楼waterstony(王小石)回复于 2003-06-01 14:16:19 得分 6
你把父类和子类的click代码贴出来,我帮你瞧瞧Top
6 楼dberror()回复于 2003-06-01 14:35:36 得分 0
很简单
新建Standard Visual类(选datawindow) u_datawindow,在Clicked事件中写 Return 1
新建窗口w_test,在上面放控件dw_1(该控件从u_datawindow继承),在dw_1的事件只写 // 和什么都不写,情况不一样。Top
7 楼tuliplangel(开心最重要)回复于 2003-06-01 15:00:35 得分 11
子类只有注释没有代码时 返回值有时有问题
在子类代码里写
return ancestorreturnvalue
Top
8 楼waterstony(王小石)回复于 2003-06-01 16:02:38 得分 0
父类数据窗口click代码:
messagebox('','this is a father')
return 1
现象:
1、当子类不写任何代码,那么每点击一次数据窗口都可以弹出box。
2、如果子类加了一个注释//,那么必须点击两次才能弹出box。
我的解释:
click的返回值:返回1,focus不变;返回0时,继续处理(查看帮助),默认应该是0。
如果子类什么都不写,那么系统只调用父类的代码,最终返回1;
如果子类加了一个注释,那么系统调用了父类代码后,仍会调用子类代码,这个子类就像一个只有返回值的空函数,返回的是默认的0,所以最后系统让你继续处理,这时你必须点击两下才能弹出box了。
楼上的代码相当于返回1,也就可以单击一次弹出box了。
希望能对你有帮助Top
9 楼dberror()回复于 2003-06-01 16:39:29 得分 0
王小石谢谢你的帮助
不好意思,在你发帖之前我已结帖,分少了些,但真的谢谢你Top
10 楼waterstony(王小石)回复于 2003-06-01 17:37:42 得分 0
没有关系,大家共同学习。Top




