跳轉到主要內容
使用者定義屬性是隸屬於某個元素的型別化變數。這些屬性會在 External fields 區段中定義。應遵循下列格式:
Type1 Name1;
...
TypeN NameN;
其中 Name 為變數的名稱,Type 為其型別。 建立欄位時,會進行如下初始化:數值欄位會初始化為零值,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; // 相同類型的元素