Pular para o conteúdo principal
Uma propriedade definida pelo usuário é uma variável tipada que pertence a um elemento. Essas propriedades são definidas na seção External fields. O seguinte formato deve ser observado:
Tipo1 Nome1;
...
TipoN NomeN;
onde Name é o nome da variável e Type é seu tipo. Quando os campos são criados, eles são inicializados da seguinte forma: campos numéricos são inicializados com zero, retângulos e regiões são inicializados com valores vazios, etc. Os campos podem ser usados no elemento ao qual pertencem e em qualquer um dos elementos localizados abaixo dele. O valor de um campo só pode ser alterado no elemento ao qual pertence; nos demais elementos, ele fica disponível apenas para leitura. O valor de uma expressão complexa que caracteriza a hipótese de um elemento pode ser calculado e gravado nessa propriedade. Esse valor pode ser acessado a partir de qualquer um dos elementos abaixo, sem precisar recalculá-lo sempre que necessário. Isso reduz o tempo necessário para corresponder o FlexiLayout, elimina a necessidade de copiar uma expressão extensa em cada elemento e torna o código mais legível. Para acessar um campo de um elemento, usa-se o nome completo do campo no seguinte formato: ElementName.FieldName (por exemplo, SearchElements.StaticText1.x). Dentro de um elemento, seu campo pode ser acessado pelo nome: x. No caso de um elemento composto, seus subelementos (em qualquer nível de aninhamento) também podem acessar seus elementos por seus nomes curtos. Dentro de um elemento, os nomes dos campos devem ser exclusivos. Os nomes dos elementos de um elemento composto não podem coincidir com nenhum dos nomes de campos em seus subelementos (em qualquer nível de aninhamento). Além disso, os nomes dos campos de um elemento composto não podem coincidir com nenhum dos nomes de seus subelementos.

Exemplo

Este exemplo busca dois componentes de endereço: cidade (string City) e estação de metrô (string Station). A estação de metrô é especificada somente se a cidade for Sydney. Para acelerar a correspondência do FlexiLayout, especificamos a propriedade fromSydney para o elemento City. Essa propriedade é true se o elemento City for detectado e tiver o valor Sydney, e false em todos os outros casos. Código para o elemento City: Campos externos
logic fromSydney;
Avaliação de hipóteses
if( not IsNull and Value.Find( "Sydney" ) >= 0 ) then fromSydney = true;
else fromSydney = false;
Em seguida, usamos essa propriedade para localizar a estação de metrô. Para acelerar o processo de correspondência, procuramos a estação apenas se Sydney for detectada como o elemento City. Código para o elemento Station: Condições de pesquisa
if not City.fromSydney then dontfind;
Observação: Por causa dos fields, elementos do mesmo tipo não são tratados como idênticos. Portanto, construções do seguinte tipo são proibidas:
Let e = SearchElements.StaticText1;
e = SearchElements.StaticText2; // elemento do mesmo tipo