Name は変数名、Type はその型です。
field の作成時には、自動的に初期化されます。たとえば、数値 field は 0、矩形と Region は空の値で初期化されます。
field のスコープとアクセス
field は、それが属する要素内と、検索ツリー内でそれより下位にある任意の要素で使用できます。field の値を変更できるのは、それが属する要素内だけです。ほかの要素では、読み取り専用で参照できます。 要素の field にアクセスするには、ElementName.FieldName の形式で field の完全名を使用します (例: SearchElements.StaticText1.x) 。要素内では、その field には x という名前でアクセスできます。複合要素の場合は、そのサブ要素も (ネストのレベルに関係なく) 短縮名でその field にアクセスできます。
要素の仮説を表す複雑な式の値は、計算してプロパティに書き込むことができます。その後、この値には検索ツリー内でそれより下位にある任意の要素から、必要になるたびに再計算することなくアクセスできます。これにより、FlexiLayout のマッチングに必要な時間が短縮され、大きな式を各要素にコピーする必要がなくなり、コードの可読性も向上します。
field の命名に関する制限
- 1 つの要素内では、field 名は一意である必要があります。
- 複合要素内の要素名は、そのサブ要素 (ネストされたすべてのレベルを含む) 内のいずれの field 名とも一致してはなりません。
- 複合要素の field 名は、その配下のいずれのサブ要素名とも一致してはなりません。
例: ユーザー定義プロパティでマッチングを高速化する
この例では、2 つの住所コンポーネント、つまり都市 (character string City) と地下鉄駅 (character string Station) を検索します。地下鉄駅を指定するのは、都市が Moscow の場合のみです。FlexiLayout のマッチングを高速化するため、この例では City 要素にfromMoscow プロパティを定義しています。このプロパティは、City 要素が検出され、その値が “Moscow” の場合は true、それ以外の場合は false になります。
External fields セクションの City 要素のコード:
