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

示例

本示例搜索两个地址组件:城市(字符串 City)和地铁站(字符串 Station)。只有当城市为 Sydney 时,才指定地铁站。为加快 FlexiLayout 匹配,我们为 City 元素指定一个 fromSydney 属性。该属性在检测到 City 元素且其值为 Sydney 时为 true,在所有其他情况下为 false City 元素的代码: 外部字段
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; // 相同类型的元素