Vai al contenuto principale
Supponiamo, per comodità, che non siano stati impostati vincoli dell’area di ricerca nel pannello Properties dell’elemento (e di qualsiasi suo elemento Group padre). In questo caso, prima che il programma applichi i vincoli dalla sezione Search Conditions, l’area di ricerca dell’elemento coinciderà con il rettangolo della pagina. Se non ci sono vincoli aggiuntivi nella sezione, il programma cercherà l’elemento sull’intera pagina. L’applicazione dei vincoli di tipo 1, 2 e 4 descritti in Search Constraints creerà un’area di ricerca composta da un array di rettangoli. Il programma considererà l’area di ricerca come un unico rettangolo che circoscrive l’intero array, dal quale deve essere escluso un insieme specificato di rettangoli (rettangoli esclusi). L’applicazione dei vincoli di ricerca di tipo 3 descritti in Search Constraints creerà un intervallo di coordinate consentite per ciascun bordo delle ipotesi – sinistro, destro, superiore e inferiore. Ciascun bordo è caratterizzato da un intervallo di coordinate sull’asse corrispondente, ad es. [x1, x2] o [y1, y2]. Qui x1 e x2 sono di tipo XCoordinate, e y1 e y2 sono di tipo YCoordinate. Il segmento dell’asse deve soddisfare la seguente condizione: x1 <= x2 per le coordinate X e y1 <= y2 per le coordinate Y. Se a un bordo vengono applicati consecutivamente più vincoli, ciascun vincolo modificherà l’intervallo di coordinate consentite per quel bordo. Sia che la sezione Search Conditions contenga i seguenti vincoli:
  • LeftBound > 5mm,
  • LeftBound < 15mm,
  • LeftBound < 10mm.
Supponiamo che l’area di ricerca coincida con il rettangolo della pagina, cioè [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom], prima che i vincoli sopra vengano applicati. Allora gli intervalli delle coordinate dei bordi dell’elemento saranno: Supponiamo che l’area di ricerca non sia specificata prima dell’esecuzione di questi vincoli. Quindi, nel caso di un FlexiLayout a una pagina (il numero minimo e massimo consentito di pagine in un documento è 1), l’area di ricerca coincide con il rettangolo della pagina [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom]. Nel caso di un FlexiLayout multipagina, l’area di ricerca ha la dimensione massima [-INF, -INF, INF, INF]. Gli intervalli delle coordinate dei bordi dell’elemento saranno i seguenti:
BoundaryRange for one-page FlexiLayoutRange for multi-page FlexiLayout
LeftBound[PageRect.Left, PageRect.Right][-INF, INF]
TopBound[PageRect.Top, PageRect.Bottom][-INF, INF]
RightBound[PageRect.Left, PageRect.Right][-INF, INF]
BottomBound[PageRect.Top, PageRect.Bottom][-INF, INF]
Quando viene eseguito il vincolo LeftBound > 5mm, cambia solo il bordo sinistro. L’intervallo dei suoi possibili valori diventa il segmento [5mm, PageRect.Right] per i FlexiLayout a una pagina e il segmento [5mm, INF] per i FlexiLayout multipagina. Dopo l’applicazione del vincolo LeftBound > 5mm, cambierà solo il bordo sinistro – le sue coordinate consentite saranno [5mm, PageRect.Right]. Dopo l’applicazione del vincolo LeftBound < 15mm, l’intervallo di coordinate consentite del bordo sinistro sarà [5mm, 15mm]. Dopo l’applicazione del vincolo LeftBound < 10mm, l’intervallo di coordinate consentite del bordo sinistro sarà [5mm, 10mm]. Analogamente è possibile impostare vincoli per gli altri bordi dell’elemento. I bordi specificati dell’area di ricerca formano il cosiddetto fuzzy rectangle.