Pré. | Proc. |
Enregistrement et Mappage Changements de State
Cette rubrique explique comment définir des contraintes par rapport à chaque State dans la Statemachine d'état sous une classe, pour définir le changement d'état à enregistrer.
Exemple
Cet exemple de dialogue State ' Propriétés ' est pour l' State appelé Parlement ; l'onglet 'Constraints' est ouvert pour montrer comment l' State est lié à la classe CXTrain.
Un State peut être défini par une seule contrainte ou par plusieurs ; dans l'exemple, le Parlement State a deux contraintes :
Les valeurs des contraintes ne peuvent être comparées que pour les types elemental, enum et string
La classe CXTrain a un membre appelé Location de type int et un membre appelé Departing.Name de type CString ; ce que cette contrainte signifie, c'est que cet State est évalué à Vrai lorsque :
- une instance de la classe CXTrain existe et
- sa variable membre Location a la valeur 0 et
- la variable membre Departing.Name a la valeur Parlement
Opérateurs dans les contraintes
Il existe deux types d'opérateurs que vous pouvez utiliser sur les contraintes pour définir un State :
- Les opérateurs logiques AND et OR peuvent être utilisés pour combiner des contraintes
- Les opérateurs d'équivalence {= et != } peuvent être utilisés pour définir les conditions d'une contrainte
Emplacement=0 OR
Emplacement=1 AND
Departing.Name!=Centre
Voici quelques exemples d'utilisation des opérateurs d'équivalence :
Departing.Name!=Central AND
Emplacement !=1
Notes
- Les guillemets autour des chaînes sont facultatifs ; la comparaison des chaînes est toujours sensible à la casse pour déterminer la vérité d'une contrainte