三、从主题列表中选择
如果用户想使程序更加灵活地从多个主题列表中选择一个,不是仅仅对某特定主题进行操作,则可以用GetThemes请求来创建视图中的主题列表。消息框通常被用来向用户提供可供选择的列表,用户的选择被保存到一个变量中,具体用法参见下例。
[例3]从主题列表中选择主题
myView=av.GetProject.FindDoc("定级因子")
theThemeList=myView.GetThemes
theTheme=MsgBox.List(theThemeList,"选择一个主题","主题选择")
theTheme.SetVisible(True)
上例中,首先在当前工程中找到“定级因子”文档,利用GetThemes请求来创建文档视图中的主题列表,然后将主题列表送入由MsgBox.List创建的消息框中供用户选择,并将选中的主题设置为可见。程序运行结果如图7-13所示。
消息框有三种:MsgBox.List以滚动列表的方式显示选项,以供单选;Multilist允许用户在列表中选择多项内容;Choise以下拉列表形式显示选项。
三种形式的请求都有相同的三个参数:一个选项列表,一条消息提示和一个窗体的标题。此外,用户可创建自己的列表,如果列表中的对象是字符串、数字或布尔值的话,就可以使用ListAsString、MultiAsString和ChoiceAsString。用户创建的选项内容放在大括号内。
[例4]从主题列表中选择主题(多选)
thethemelist=av.getactivedoc.getthemes
choices=MsgBox.MultiListAsString(thethemelist,"选择一个主题","请选择")
for each i in choices
图7-13 从主题列表中选择主题(单选)
msgbox.info(i.AsString,"List")
i.setvisible(True)
end
上例中,利用GetThemes请求创建文档视图中的主题列表,将主题列表送入由MsgBox.MultiList创建的消息框中供用户选择,可选择多个主题,然后利用“For each”循环语句,将选中的主题依次用消息框显示主题名,并设置为可见。程序运行结果如图7-14所示。
图7-14 从主题列表中选择主题(多选)
[例5]自定义列表进行多选,程序运行结果如图2-15所示。
options={"a","b","c","d"}
choices=MsgBox.MultiListAsString(options,"Select some","SELECT")
if(choices=nil)then
MsgBox.Info("NO SELECTION","")
else
MsgBox.Info(choices.count.AsString,"HOW MANY")
end
图7-15 自定义列表进行多选
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。