Saltar al contenido principal
Una propiedad definida por el usuario es una variable tipada que pertenece a un elemento. Estas propiedades se definen en la sección External fields. Debe observarse el siguiente formato:
Tipo1 Nombre1;
...
TipoN NombreN;
donde Name es el nombre de la variable y Type es su tipo. Cuando se crean campos, se inicializan del siguiente modo: los campos numéricos se inicializan con valores de cero; los rectángulos y las regiones, con valores vacíos; etc. Los Field pueden usarse en el elemento al que pertenecen y en cualquiera de los elementos situados por debajo de ese elemento. El valor de un campo solo puede modificarse en el elemento al que pertenece y, en los demás elementos, está disponible como de solo lectura. El valor de una expresión compleja que caracteriza la hipótesis de un elemento puede calcularse y escribirse en esta propiedad. Este valor puede consultarse desde cualquiera de los elementos inferiores, sin recalcularlo cada vez que se necesite. Esto reduce el tiempo necesario para ajustar el FlexiLayout, evita tener que copiar una expresión extensa en cada elemento y hace que el código sea más legible. Para acceder a un campo de un elemento, se utiliza el nombre completo del campo con el siguiente formato: ElementName.FieldName (p. ej., SearchElements.StaticText1.x). Dentro de un elemento, su campo puede consultarse por nombre: x. En el caso de un elemento compuesto, sus subelementos (a cualquier nivel de anidamiento) también pueden acceder a sus elementos por sus nombres cortos. Dentro de un elemento, los nombres de los campos deben ser únicos. Los nombres de los elementos de un elemento compuesto no pueden coincidir con ninguno de los nombres de campo en sus subelementos (a cualquier nivel de anidamiento). Además, los nombres de los campos de un elemento compuesto no pueden coincidir con ninguno de los nombres de sus subelementos.

Ejemplo

Este ejemplo busca dos componentes de dirección: ciudad (cadena de caracteres City) y estación de metro (cadena de caracteres Station). La estación de metro se especifica solo si la ciudad es Sydney. Para acelerar la coincidencia de FlexiLayout, especificamos una propiedad fromSydney para el elemento City. Esta propiedad es true si se detecta el elemento City y su valor es Sydney, y false en cualquier otro caso. Código para el elemento City: Campos externos
logic fromSydney;
Evaluación de hipótesis
if( not IsNull and Value.Find( "Sydney" ) >= 0 ) then fromSydney = true;
else fromSydney = false;
Posteriormente, usamos esta propiedad para buscar la estación de metro. Para acelerar el proceso de coincidencia, buscamos la estación solo si se detecta Sídney como el elemento City. Código del elemento Station: Condiciones de búsqueda
if not City.fromSydney then dontfind;
Nota: Debido a los fields, los elementos del mismo tipo no se consideran idénticos. Por lo tanto, se prohíben las construcciones del siguiente tipo:
Let e = SearchElements.StaticText1;
e = SearchElements.StaticText2; // elemento del mismo tipo