메인 콘텐츠로 건너뛰기
사용자 정의 속성은 요소에 속하는 형식이 지정된 변수입니다. 이러한 속성은 External fields 섹션에서 정의합니다. 다음 형식을 사용합니다:
Type1 Name1;
...
TypeN NameN;
여기서 Name은 변수의 이름이고 Type은 그 변수의 유형입니다. field가 생성될 때는 다음과 같이 초기화됩니다. 숫자 field는 0으로 초기화되고, 사각형 및 영역은 빈 값으로 초기화됩니다. Field는 자신이 속한 element 및 그 element 아래에 위치한 모든 element에서 사용할 수 있습니다. Field의 값은 오직 자신이 속한 element 내에서만 변경할 수 있으며, 다른 element에서는 읽기 전용으로만 사용할 수 있습니다. 어떤 element에 대한 가설을 나타내는 복잡한 식의 값을 계산하여 이 속성에 기록할 수 있습니다. 이렇게 하면 이후 아래에 위치한 어떤 element에서든 매번 다시 계산하지 않고 이 값을 사용할 수 있습니다. 이는 FlexiLayout을 매칭하는 데 필요한 시간을 줄여 주고, 각 element에 복잡한 식을 복사해 넣을 필요를 없애며, 코드를 더 읽기 쉽게 만들어 줍니다. 어떤 element의 field에 접근하려면 다음 형식의 전체 field 이름을 사용합니다: ElementName.FieldName (예: SearchElements.StaticText1.x). element 내부에서는 해당 field에 이름만으로 접근할 수 있습니다: x. 복합 element의 경우, 그 하위 element(임의의 중첩 수준)는 짧은 이름으로 상위 element의 field에도 접근할 수 있습니다. 하나의 element 내에서 field 이름들은 서로 고유해야 합니다. 복합 element를 구성하는 element 이름은 그 하위 element(임의의 중첩 수준)에 있는 어떤 field 이름과도 일치해서는 안 됩니다. 또한 복합 element의 field 이름은 그 하위 element의 이름과도 일치해서는 안 됩니다.

예시

이 예시는 두 개의 주소 구성 요소를 찾습니다. 도시(문자열 string City)와 지하철역(문자열 string Station)입니다. 지하철역은 도시가 Sydney인 경우에만 설정됩니다. FlexiLayout 매칭 속도를 높이기 위해 City 요소에 fromSydney 속성을 정의합니다. 이 속성은 City 요소가 감지되고 값이 Sydney인 경우 true이고, 그 외 모든 경우에는 false입니다. City 요소에 대한 코드: 외부 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; // 같은 유형의 요소