liuhui1983 发表于 2007-12-13 10:31

关于gui参数传递之“怪现象”

请高手指点:
我做了两个窗口,一个主,另一个被主调用,并向主窗口中传递参数,第二个窗口有一个text控件(tag属性为:edit1),通过w=get(findobj('tag','edit1'))得到其值,并把他定义成全局变亮(global w),在主窗口中同样存在一个text(tag属性为:edit1)控件用于显示所得到的w值,通过一个按钮控件控制他的 显示;
现象:
在按钮控件中通过语句 set(findobj('tag','edit1'),'string',w),来显示text内容,此时如果传递的参数w=5,显示正常。
但是当对w进行 运算操作时就显示不正常了,比如:set(findobj('tag','edit1'),'string',w*2),则显示为106,比正确值大了10.6倍,不知道这是为什么?

[ 本帖最后由 eight 于 2007-12-13 10:59 编辑 ]

liuhui1983 发表于 2007-12-13 10:34

还有就是 如果输入的 数大于等于10的话,同样用set(findobj('tag','edit1'),'string',w*2),
程序就显示出错:
Warning: Single line Edit Controls can not have multi-line text.
这又是什么原因??

[ 本帖最后由 eight 于 2007-12-13 10:58 编辑 ]

eight 发表于 2007-12-13 10:59

原帖由 liuhui1983 于 2007-12-13 10:31 发表 http://www.chinavib.com/forum/images/common/back.gif
请高手指点:
我做了两个窗口,一个主,另一个被主调用,并向主窗口中传递参数,第二个窗口有一个text控件(tag属性为:edit1),通过w=get(findobj('tag','edit1'))得到其值,并把他定义成全局变亮(global w), ...
看不懂

eight 发表于 2007-12-13 11:00

原帖由 liuhui1983 于 2007-12-13 10:34 发表 http://www.chinavib.com/forum/images/common/back.gif
还有就是 如果输入的 数大于等于10的话,同样用set(findobj('tag','edit1'),'string',w*2),
程序就显示出错:
Warning: Single line Edit Controls can not have multi-line text.
这又是什么原因??
edit控件的多行显示问题,请版面搜索一下

liuhui1983 发表于 2007-12-13 22:07

我的问题是从第二个窗口传回来的数如果直接显示在第一个窗口的text控件上的话是正确的 ,
但当对传回来的数进行计算操作时,比如让这个传回来的数乘以2之后再显示在第一个窗口的text控件上时,结果就不正确了,这是什么 原因?

liuhui1983 发表于 2007-12-13 22:12

问题解决了 ,原来我传回来的是字符串,如果在进行运算操作的话是对字符串进行运算操作,而不是对其中的数字进行操作,哈哈

liuhui1983 发表于 2007-12-13 22:13

用str2num进行转换一下就可以了,嘿嘿:loveliness:

sigma665 发表于 2007-12-13 22:14

谢谢LZ回来共享:)
页: [1]
查看完整版本: 关于gui参数传递之“怪现象”