GUI Design Studio----扩展交互功能(仅适用于Pro)(二)
10.7 条件元素状态
仅限专业版
现在,许多元素允许根据某些表达式设置其可见性,并在适当情况下设置其启用状态:
这通常用于根据对话框中当前选择的其他选项来启用或禁用对话框中的控件。它也可以用于使控件仅在选择了相关选项时才会显示。
将元素悬停在原型信息框上时,可以在工具提示中看到元素的条件:
如果未输入可见条件,则该元素将始终可见。
如果未输入启用条件,则元素将默认为其设计的启用状态。
注意:从4.2版开始,元素的可见状态和启用状态会向下过滤所有子级。因此,例如,禁用“组框”将禁用其中包含的所有元素。
有关条件表达式中可能包含的内容的详细信息,请参见元素变量参考和表达式参考。
10.8 有条件的内容面板
仅限专业版
在“故事版”面板上,您将找到一个功能强大的元素,称为“条件面板”:
如图所示,它包含条件性内容,当您向设计中添加一个条件性内容时,您会看到它是由两个永久连接的部分构成的:
想法是将虚线框放在要显示条件内容的任何位置。然后,“条件”框的行为与用于选择不同导航方案的普通“条件框”的行为类似,但是在这种情况下,您可以将其连接到要显示的内容。
另一个区别是,在运行原型时,永远不会向用户显示选择选择框。如果有多个活动方案可供选择,并且选项已设置为“让用户从列表中选择”,则始终选择第一个活动方案。
另外,如果没有一个条件的条件为“真”,并且没有不带条件的方案,则不会显示任何已连接的条件内容面板。
每当数据更改时都会评估条件,因此条件面板将立即更改。例如,如果根据“编辑框”条目的值将面板设置为显示或不显示,则只要在“编辑框”中按任意键,便会检查条件。
请注意,“条件内容”部分是完全可调整大小的,并且在选择“元素”时可以通过将“条件”框拖放到任何位置来重新放置“条件”框(但是请注意,出于撤消/重做的目的,当前忽略此操作)。
通常,从“条件”框到动态内容的所有连接都应使用“Replace Window”导航进行,这是强制执行的默认设置。但是,可以根据需要灵活地更改连接类型。
例子1
这是一个简单的示例,说明如何使用条件面板:
打开此窗口时,根据评估的条件,其中将显示彩色面板。如果没有一个条件的条件为“真”,则不会显示任何彩色框。
例子2
作为一个更实际的示例,下面的面板可能显示为网页的一部分:
在此,“ Logged In”条件基于“ LoggedIn”变量的值评估为True。还使用文本替换设置“欢迎”文本,以包括已登录的用户名。
10.9 模态水平
仅限专业版
类型为“Modal Popup”和“Modal Choice Popup”的导航引入了一个新的模式级别,必须先关闭该模式级别,然后才能返回到下面的级别。 通常用于收集信息并提供接受(“确定”)或“取消”选项的对话框。
这对于交互变量具有特殊意义:
1.创建新的模态层时,所有数据变量的当前状态都将复制到该新层。
2.对模态层中变量的更改不会立即影响其下的任何层。
3.如果使用Escape键或“Close and Cancel”框取消了模态层,则仅丢弃该层内的变量。
4.如果接受了模态层,请使用Enter键或“Close and Accept”框,则将该层内的变量复制回下面的层,包括在过程中可能创建的任何新变量。
10.10 元素变量参考
与所有当前实现的元素相关联的变量如下所示。 在每种情况下,用“变量”替换您分配给元素的变量名称。 除非指定为[只读],否则可以设置所有变量;除非指定为[只读],否则可以在表达式中使用。 有关这些变量如何工作的概述,请参见“交互变量”主题。
Calendar |
|
Variable |
以逗号分隔的选定日期列表,格式为“ YYYY-MM-DD” |
Variable.selected |
所选日期数(即所选连续天数) |
Variable.long |
[只读]使用区域设置顺序的第一个选定日期的长版,例如 “2010年3月1日” |
Variable.short |
[只读]使用区域设置顺序和分隔符(例如:“ 2010年1月3日”) |
Check Box |
|
Variable |
0 =未选中,1 =已选中,2 =不确定 |
Check List Box |
|
Variable |
逗号分隔的所选项目文本值列表 |
Variable.checks |
以逗号分隔的选中项文本值列表 |
Variable.index |
第一个选定项目的数字索引(1 ..计数);如果未选择任何项目,则为0 |
Variable.checked |
[只读]已勾选项目的数量 |
Variable.count |
[只读]列表中的项目总数 |
Variable.selected |
[只读]所选项目数 |
Variable.all |
[仅设置] 0 =取消选中所有项目, 1 =选中所有项目, 2 =将所有项目设置为不确定状态, toggle=切换所有项目的检查状态(0-> 1、1或2-> 0) |
Variable.add |
[仅设置]将逗号分隔的项目列表添加到列表中 |
Variable.addsort |
[仅设置]将逗号分隔的项目列表添加到列表中,然后按升序排序 |
Variable.delete |
[仅设置]删除以逗号分隔的列表中命名的项目: 值“{all}”将删除所有项目并清除列表 值“{selected}”将删除所有选中的项目 |
Check Tree |
|
Variable |
逗号分隔的选定项目文本值列表(另请参见*) |
Variable.checks |
选中项文本值的逗号分隔列表(另请参见*) |
Variable.checked |
[只读]已选中项目的数量 |
Variable.selected |
[只读]所选项目数 |
Combo Box |
|
Variable |
本文值 |
Component (design)---组件(设计) |
|
Variable |
(未使用,但必须用于容纳子变量) |
Variable.hscroll |
水平滚动位置 |
Variable.hmax |
[只读]最大水平滚动位置 |
Variable.hstep |
[只读]水平滚动步长 |
Variable.hpage |
[只读]水平滚动页面大小 |
Variable.vscroll |
垂直滚动位置 |
Variable.vmax |
[只读]最大垂直滚动位置 |
Variable.vstep |
[只读]垂直滚动步长 |
Variable.vpage |
[只读]垂直滚动页面大小 |
Variable.xoffset |
X偏离原始位置 |
Variable.yoffset |
Y从原始位置偏移 |
Edit Box |
|
Variable |
文本值 |
Icon |
|
Variable |
[仅设置]项目“ _Icons”子文件夹中的图标文件名,带或不带.ico扩展名 |
Image |
|
Variable |
[仅设置]项目根文件夹中图像文件的相对路径名 |
List Box |
|
Variable |
逗号分隔的所选项目文本值列表 |
Variable.index |
第一个选定项目的数字索引(1 ..计数);如果未选择任何项目,则为0 |
Variable.count |
[只读]列表中的项目总数 |
Variable.record |
[只读]第一个选定项目的关联数据记录索引,如果未选择任何项目或未附加表,则为0 |
Variable.selected |
[只读]所选项目的数量 |
Variable.add |
[仅设置]将逗号分隔的项目列表添加到列表中 |
Variable.addsort |
[仅设置]将逗号分隔的项目列表添加到列表中,然后按升序排序 |
Variable.delete |
[仅设置]删除以逗号分隔的列表中命名的项目: 值“{all}”将删除所有项目并清除列表 值“{selected}”将删除所有选中的项目 |
Progress Bar---进度条 |
|
Variable |
数字进度值(0 ..全范围) |
Radio Button |
|
Variable |
0 =清除,1 =已选择 |
Rectangle |
|
Variable |
逗号分隔的填充颜色的R,G,B值 |
Ribbon Bar |
|
Variable |
逗号分隔的活动功能区上下文列表。 设置此选项可**内容单击等上的上下文选项卡。 |
Variable.index |
所选标签的数字索引(从1开始) |
Variable.tab |
所选标签的文字标签 |
Scroll Bar---滚动条 |
|
Variable |
滑块的数值(0 ..范围-页面大小) |
Slider---滑杆 |
|
Variable |
滑块的数值(0 ..范围) |
Spinner---微调器 |
|
Variable |
数值(通常反映在另一个控件如“编辑框”中) |
Tab Bar---标签栏 |
|
Variable |
所选标签的文字标签 |
Variable.index |
所选标签的数字索引(从1开始) |
Table |
|
Variable |
所选行文本值的逗号分隔列表,取决于所选选择值列 |
Variable.index |
第一个选定行的数字索引(1 ..计数);如果未选择任何行,则为0 |
Variable.count |
[只读]表中的总行数 |
Variable.record |
[只读]所选第一行的关联数据记录索引,如果未选择任何行或未附加表,则为0 |
Variable.selected |
[只读]所选行数 |
Tree |
|
Variable |
逗号分隔的选定项目文本值列表(另请参见*) |
Variable.selected |
[只读]所选项目数 |
CSV Data Tables |
|
#TableName |
(当前未使用) |
#TableName.FieldName |
数据表中活动记录的字段值 |
#TableName.$index |
活动记录的数字索引(1 .. $ count);如果没有活动记录,则为0 |
#TableName.$count |
[只读]数据表中的记录总数 |
*关于Tree的特别说明
在写入Variable或Variable.checks时,在项目上附加'+'或'-'也会将该状态应用于所有子项目。例如,具有以下树结构:
Documents
Reports
Spreadsheets
Presentations
Media
Audio
Pictures
People
Products
Video
将Variable设置为“Media”将仅选择“Media”项。
将Variable设置为“Media+”将选择“Media”项目以及其中的所有项目,包括Audio,Pictures,People,Products和Video。
将Variable设置为“Media+,People-”将选择除“People”以外的所有“ Media”项。
对于Variable.checks同样。
10.11 表达式参考
表达式可以在“引号”中包含变量名称和文字文本。 如本主题中所述,也可以使用运算符和功能的组合。
您可以使用以下符号和方括号来计算表达式(请注意,非数字文本值通常具有数字值为零):
II |
逻辑或 |
OR |
逻辑或 |
&& |
逻辑与 |
AND |
逻辑与 |
! |
逻辑非 |
| |
二进制或 |
^ |
二进制异或(XOR) |
& |
二进制与 |
~ |
二进制补码 |
<< |
二进制左移 |
>> |
二进制右移 |
+ |
加 |
- |
减去 |
* |
乘 |
/ |
除 |
% |
取余 |
= |
相等测试(不区分大小写,用于文本比较) |
== |
完全相等测试(区分大小写) |
<> |
非相等测试(区分大小写,文本比较不敏感) |
!= |
非相等测试(区分大小写,文本比较不敏感) |
!== |
精确的非相等测试(区分大小写) |
< |
小于 |
<= |
小于或等于 |
> |
大于 |
>= |
大于或等于 |