Entendendo como as regiões de pesquisa são formadas usando propriedades de elementos e condições de pesquisa
A região de pesquisa de um elemento é formada usando as propriedades do elemento definidas na seção Onde pesquisar e as condições definidas na seção Condições de pesquisa. Antes de aplicar as propriedades e condições, a área de pesquisa coincide com o retângulo da Página. Primeiro, o programa aplica as propriedades do elemento à área. Em seguida, aplica as restrições adicionais definidas na seção Condições de pesquisa.Os seguintes tipos de restrição podem ser definidos na seção Condições de pesquisa:
A área de pesquisa pode ser limitada a um retângulo (variável Rect), a uma região (ou seja, um conjunto contínuo de retângulos — variável Region) ou a um array de retângulos que, em geral, não precisa ser contínuo (variável RectArray). Esse tipo de restrição é definido usando a função RestrictSearchArea e especificando um parâmetro do tipo correspondente. Quaisquer expressões que retornem valores do tipo exigido podem ser especificadas como parâmetros.
A área de pesquisa pode ser limitada a um semiplano localizado à esquerda, à direita, acima ou abaixo de um ponto específico. Tais restrições são definidas usando as funções Leftof, Rightof, Above e Below.
Às vezes, pode ser desejável definir restrições para um limite do elemento. Por exemplo, pode-se saber de antemão que o limite esquerdo de um elemento está sempre localizado na parte esquerda da imagem, enquanto o limite direito pode se estender indefinidamente para a direita. A linguagem FlexiLayout permite definir tais restrições na etapa de cálculo da área de pesquisa, reduzindo assim o conjunto de possíveis hipóteses para um elemento. Tais restrições são definidas usando as funções LeftBound, RightBound, topBound e BottomBound e os operadores > e <. As funções LeftBound e RightBound são usadas para acessar os limites esquerdo e direito da área de pesquisa, e as funções topBound e BottomBound são usadas para acessar os limites superior e inferior, respectivamente.
Você pode definir restrições de pesquisa excluindo um retângulo, um array de retângulos, uma hipótese etc. da área de pesquisa. Isso pode ser feito usando as funções Exclude, ExcludeRect e ExcludeSet.
Você pode especificar qualquer número de restrições de pesquisa dos tipos acima na seção Condições de pesquisa. Cada restrição criará uma região na imagem. Todas as regiões criadas pelas restrições serão intersectadas.Além disso, a área de pesquisa calculada para o elemento será intersectada com a área de pesquisa do elemento Group do qual este elemento é membro.