跳转到主要内容
用户自定义属性是隶属于元素的强类型变量。这些属性在 External fields 部分中进行定义。请遵循以下格式:
类型1 名称1;
...
类型N 名称N;
其中 Name 为变量名,Type 为其类型。 创建 fields 时会按如下方式初始化:数值 field 初始化为 0,矩形和区域初始化为空值,等等。 field 可在其所属的元素以及位于该元素之下的任何元素中使用。field 的值只能在其所属元素中修改,在其他元素中仅可读。 用于刻画某个元素假设的复杂表达式的值可以计算后写入此属性。此值可在其下方的任何元素中访问,而无需在每次需要时都重新计算。这样可以缩短匹配 FlexiLayout 的时间,避免将大型表达式复制到每个元素中,并使代码更易读。 要访问某个元素的 field,请使用该 field 的全名,格式如下:ElementName.FieldName(例如 SearchElements.StaticText1.x)。在元素内部,可以直接用名称访问其 field:x。对于复合元素,其子元素(任意嵌套层级)也可以用其短名称访问这些元素。 在一个元素内部,field 的名称必须唯一。复合元素的元素名称不得与其子元素(任意嵌套层级)中的任何 field 名称相同。此外,复合元素的 field 名称也不得与其任何子元素的名称相同。

示例

本示例搜索两个地址组件:城市(字符型字符串 City)和地铁站(字符型字符串 Station)。仅当城市为 Sydney 时才指定地铁站。为加快 FlexiLayout 匹配,我们为 City 元素指定了 fromSydney 属性。当检测到 City 元素且其值为 Sydney 时,该属性为 true,否则为 false City 元素的代码: External fields
logic fromSydney;
假设评估
if( not IsNull and Value.Find( "Sydney" ) >= 0 ) then fromSydney = true;
else fromSydney = false;
随后,我们使用该属性搜索地铁站。为加快匹配过程,仅在将 City 元素识别为 Sydney 时才进行站点搜索。 Station 元素代码: 搜索条件
if not City.fromSydney then dontfind;
注意: 由于存在 fields,相同类型的元素不会被视为完全相同。因此,禁止使用以下类型的构造:
Let e = SearchElements.StaticText1;
e = SearchElements.StaticText2; // 相同类型的元素