Vai al contenuto principale
L’area di ricerca di un elemento è definita tramite le proprietà impostate nella sezione Dove cercare e le condizioni impostate nella sezione Condizioni di ricerca. Prima dell’applicazione di proprietà e condizioni, l’area di ricerca coincide con il rettangolo della Pagina. Per prima cosa, il programma applica all’area le proprietà dell’elemento. Successivamente applica le restrizioni aggiuntive impostate nella sezione Condizioni di ricerca. Nella sezione Condizioni di ricerca è possibile impostare i seguenti tipi di vincolo:
  1. L’area di ricerca può essere limitata a un rettangolo (variabile Rect), a una regione (ossia un array continuo di rettangoli – variabile Region), oppure a un array di rettangoli che, in generale, non deve essere continuo (variabile RectArray). Questo tipo di vincolo si imposta usando la funzione RestrictSearchArea e specificando un parametro del tipo corrispondente. È possibile specificare come parametro qualsiasi espressione che restituisca valori del tipo richiesto.
  2. L’area di ricerca può essere limitata a un semipiano situato a sinistra, a destra, sopra o sotto un determinato punto. Tali vincoli si impostano usando le funzioni Leftof, Rightof, Above e Below.
  3. Talvolta può essere utile vincolare un bordo dell’elemento. Ad esempio, si può sapere in anticipo che il bordo sinistro di un elemento si trova sempre nella parte sinistra dell’immagine, mentre il bordo destro può estendersi indefinitamente verso destra. Il linguaggio FlexiLayout consente di impostare tali vincoli nella fase di calcolo dell’area di ricerca, restringendo così l’insieme delle possibili ipotesi per un elemento. Tali vincoli si impostano usando le funzioni LeftBound, RightBound, topBound e BottomBound e gli operatori > e <. Le funzioni LeftBound e RightBound consentono di accedere rispettivamente ai bordi sinistro e destro dell’area di ricerca, mentre le funzioni topBound e BottomBound consentono di accedere rispettivamente ai bordi superiore e inferiore.
  4. È possibile impostare vincoli di ricerca escludendo dall’area di ricerca un rettangolo, un array di rettangoli, un’ipotesi, ecc. Ciò può essere fatto usando le funzioni Exclude, ExcludeRect e ExcludeSet.
Nella sezione Condizioni di ricerca è possibile specificare un numero qualsiasi di vincoli dei tipi sopra indicati. Ogni vincolo creerà una regione sull’immagine. Tutte le regioni create dai vincoli verranno intersecate. Inoltre, l’area di ricerca calcolata per l’elemento verrà intersecata con l’area di ricerca dell’elemento Group di cui l’elemento è membro.