做一个趋势视图的画面,用COMBOBOX做一个下拉栏,选择不同的项目可以显示不同的曲线,其实也就是选择不同的项目可以对一个变量进行不同的赋值。我是这么实现的,在事件Miscellaneous--Select text里选择当发生change时进行C动作,动作脚本里我的思路是先提取出当前选择的BOX值,也就是我选择的项目的序号,比如1在线 2离线 3下载。我提取的就是1,2,3。将它进行运算操作,然后赋给我想要操作的变量。但是在提取BOX值时,我用的是这个语句,Gettagfloat,其实在语句配置的地方,我发现Value一栏除了选择变量还可以选择Graphic objects,于是我选择了COMBOBOX的Selindex,我觉得这个应该是选择的序号,也就相当于现在的BOX。于是这个语句变成了 Gettagfloat("SelIndex") 编译无错误,但是我运行的时候,发现这个语句没有起到提取当前BOX值的作用。不知道这是什么原因呢?有什么办法可以实现。我看介绍说COMBOBOX可以用于选择和输入,但是我现在不知道如何输入呢?谢谢各位,真的很急。
问题补充:
感谢1楼的回答,可是我用的不是控件里的COMBOBOX,而是对象栏里的智能对象里的COMBOBOX,既不是Microsoft Forms 2.0 ComboBo也不是Siemens STEP 7 S7 ComboBox。
最佳答案
1、首先,组合控件(即:下拉式列表框)ComboBox对C脚本代码的操作兼容性不好,请更改为VBS脚本代码吧!
2、其次,不要使用控件 "Microsoft Forms 2.0 ComboBox",因为使用这个控件会导致 "pdlrt.exe" 内存需求的不断增长,请使用 "Siemens STEP 7 S7 ComboBox" 控件在OS 运行期间动态的填充。
3、之后,在事件“Picture Object > Miscellaneous > Open Picture”中,或“S7FlatComboBox > Object Events > DropDown”创建如下的 VBS脚本。当画面被调用,或点击下拉按钮的时候填充ComboBox。示例代码如下:
Dim ComBox1,n
Set ComBox1 = ScreenItems(obj)
For n = 1 To 3
ComBox1.AddItem(n)
Next
4、以上代码将在ComBox1控件中填充1、2、3项目的序号。然后就可以在选择发生Change事件时进行项目的序号(1、2、3)的提取操作了。
5、ComBox1控件中获取选择的项目文本代码操作如下:
ComBox1.SelText
6、如果要预置ComBox1控件中选择的项目文本,则代码操作如下:
ComBox1.SelText=ComBox1.List(n)
其中,n——项目序号,即:1、2、3
_____________________________________________________________________________________
补充回答:
1、不管你是用哪种COMBOBOX控件,和哪种脚本语言,虽方法不同,但功能作用都一样。你可以都去尝试和比较效果吧!
2、另请参见如下:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=729236&s_id=17&num=4#anch
提问者对于答案的评价:
谢谢~
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc268034.html