メインコンテンツへスキップ
ユーザー定義プロパティは、要素に属する型付き変数です。これらのプロパティは、Advanced タブの External fields セクションで定義します。形式は次のとおりです。 Type1 Name1; TypeN NameN; ここで、Name は変数名、Type はその型です。 field の作成時には、次のように初期化されます。数値 field は 0、矩形と Region は空の値で初期化される、といった具合です。 field は、それが属する要素内と、その要素より下にある任意の要素内で使用できます。field の値を変更できるのは、その field が属する要素内だけで、他の要素では読み取り専用です。 要素の仮説を特徴付ける複雑な式の値を計算し、このプロパティに書き込むことができます。この値には下位の任意の要素からアクセスできるため、必要になるたびに毎回計算する必要がありません。これにより、FlexiLayout のマッチングにかかる時間を短縮でき、大きな式を各要素にコピーする必要もなくなり、コードの可読性も向上します。 要素の field にアクセスするには、ElementName.FieldName 形式の完全名を使用します (例: SearchElements.StaticText1.x) 。要素内では、その field には名前だけでアクセスできます: x。複合要素の場合は、そのサブ要素 (ネストの任意のレベル) からも、その要素の field に短い名前でアクセスできます。 要素内では、field 名は一意でなければなりません。複合要素の要素名は、そのサブ要素 (ネストの任意のレベル) 内のいずれの field 名とも一致してはいけません。さらに、複合要素の field 名は、そのサブ要素のいずれの名前とも一致してはいけません。
この例では、住所の 2 つの構成要素である市区町村 (文字列 City) と地下鉄駅 (文字列 Station) を検索します。地下鉄駅は、市区町村が Moscow の場合にのみ指定されます。FlexiLayout のマッチングを高速化するため、City 要素に fromMoscow プロパティを指定します。このプロパティは、City 要素が検出され、その値がMoscowである場合はtrue、それ以外の場合はfalseです。City 要素のコード:External fieldslogic fromMoscow;Advanced post-search relationsif( not IsNull and Value.Find( “Moscow” ) >= 0 ) then fromMoscow = true; else fromMoscow = false;続いて、このプロパティを使用して地下鉄駅を検索します。マッチング処理を高速化するため、City 要素として Moscow が検出された場合にのみ駅を検索します。Station 要素のコード:Advanced pre-search relations if not City.fromMoscow then dontfind;
field があるため、同じ型の要素は同一のものとして扱われません。したがって、次のような構文は禁止されています。
Let e = SearchElements.StaticText1; e = SearchElements.StaticText2;// 同じ型の要素