La siguiente ventana Propiedades del Estado es para que el estado Turquesa. La pestaña Restricciones esta abierta para mostrar como el Estado se vincula al Pintor de la Clase. Un Estado se puede definir por una sola restricción o por muchas; en el siguiente ejemplo el Estado turquesa tiene dos restricciones.
La Clase Pintor tiene un miembro llamado Pintar del tipo Ccolour. El miembro Pintar tiene dos variables llamadas primaria y secundaria. Estas variables son enums. Los valores de las restricciones solo se pueden comparer los tipos elemental, enum y string. En el código nativo, la equivalencia de los objetos Clase solo es posible para los tipos de indicadores.
Lo que esta restricción significa es:
·
|
Cuando una instancia de la Clase Pintor existe y
|
·
|
Su variable primaria de la variable Pintar tiene el valor enum Azul y
|
·
|
Y la variable secundaria tiene el valor enum Verde luego
|
|
·
|
Este Estado se considera como verdadero.
|
Puede ver las variables para estas restricciones en la siguiente ilustración de la Clase Pintor, expandidas para mostrar los miembros. Tenga en cuenta los valores TColor de la enumeración. Estos son los valores probados en las restricciones en la ventana Propiedades del estado.
Operadores en las restricciones
Hay dos tipos de operadores que puede usar en las restricciones para definir un Estado:
·
|
Operadores lógicos Y y O se pueden usar para combinar las restricciones.
|
·
|
Operadores equivalentes {= y !=} se pueden usar para definir las condiciones de una restricción.
|
Todas las restricciones para un Estado están sujetas a una operación Y a menos que de otra manera se especifique. En su lugar puede usar la operación O, de esta manera podrá re escribir las restricciones del ejemplo anterior como:
Paint.primary=Blue OR
Paint.secondary=Green
A continuación hay unos ejemplos para usar los operadores equivalentes:
Paint.primary!=Blue AND
Paint.secondary!=Green
Paint.primary=Blue OR
Paint.primary=Green
Person.FirstName=John
Person.LastName=Carpenter
Tenga en cuenta: Las citas alrededor de los strings son opcionales. La comparación para los strings es siempre sensible al caso al determinar la veracidad de una restricción.
|