Parfois, davantage d’attributs sont nécessaires pour mieux gérer une classe. Par exemple, supposons que vous ayez quatre groupes de clients différents : types de clients d'entreprise, plus grands, plus petits et nouveaux, ou une classe de recherche avec trois méthodes de recherche différentes : disquette, disque dur et réseau. Alors, ne serait-il pas préférable d'en choisir une dans une liste d'options au lieu de définir la propriété correspondante avec des chiffres ou du texte que vous ne comprenez pas ?
Je pense que la réponse est oui. Parce que ce type de traitement est appelé « énumération ».
Ouvrez le projet de la section précédente et ajoutons du code.
Ajoutez le code suivant à la classe CDog :
Le mot-clé « Enum » permet de définir une énumération, autrement dit, il s'agit d'une liste d'options possibles. Chaque option a un numéro correspondant, ce qui signifie que BigAndShaggy est égal à 1, ShortCrewCut est égal à 2, et ainsi de suite.
Il convient de noter que lors de l'ajout d'informations sur les éléments d'énumération à la base de données, ses valeurs correspondantes sont très utiles. Puisque « BigAndShaggy » représente en réalité la valeur 1, il peut être directement inséré dans le champ numérique de la base de données. Cela signifie que vous pouvez facilement utiliser des chaînes pour gérer la base de données.
Créons donc une liste de types Dog's Coat et définissons un autre attribut pour ajouter ces types à la classe CDog.
Déclarez les variables suivantes dans la classe :
PRivateudtCoatAsCoatType
Cette variable privée définie est utilisée pour enregistrer l'attribut de type Coat qui sera ajouté. Notez que la variable udtCoat n'est ni une chaîne ni un entier, mais notre propre type d'énumération défini CoatType.
Lorsque la classe CDog est ouverte, sélectionnez la commande "AddProcedure" dans le menu "Outils" et la boîte de dialogue correspondante apparaîtra ;
Tapez Manteau dans la zone d'édition Nom ;
Cochez la case d'option "Propriété" et cliquez sur [OK].
Le système génère automatiquement le cadre de code suivant :
Mais ce n’est pas le cadre dont nous avons besoin. Dans le code, la variable de type "Variant" peut recevoir et traiter tout type de données. Dans la classe CDog que nous avons définie, le dernier attribut est Age, qui ne peut accepter que des nombres entiers. Mais maintenant, l'attribut doit pouvoir recevoir le type de données dans la liste CoatType, les modifications suivantes doivent donc être apportées :
Remplacez tous les « Variant » dans le code généré par « CoatType » ;
Ensuite, ajoutez du code qui gère réellement les propriétés.
Dans la procédure Get de la propriété, ajoutez le code suivant :
Dans la procédure Let de la propriété, ajoutez le code suivant :
Passez à Form1 ;
Remplacez le code du bouton de commande par :
Commencez maintenant à taper : MyDog.Coat=
La magie opère, lorsque vous appuyez sur la touche "=", une liste d'options possibles apparaît, parmi lesquelles nous pouvons en choisir une.
Complétez la saisie du code : MyDog.Coat=ShortCrewCut
Ensuite, nous obtiendrons la valeur de la propriété Coat. Si nous affichions simplement les valeurs des propriétés dans une boîte de dialogue de message, nous renverrions simplement la valeur de la sélection. Par exemple, si ShortCrewCut est sélectionné, sa propriété doit renvoyer 2. Si vous n’y croyez pas, vous pouvez essayer !
Mais voici une autre méthode, qui consiste à utiliser l'instruction If-Then pour déterminer Coat :
Ajoutez le code suivant après le code existant pour le bouton de commande :
Le code ici détermine simplement la valeur de la propriété Coat et affiche la boîte de dialogue de message correspondante. Bien entendu, l'instruction "SelectCase" peut également être utilisée ici.
Enfin, nous ajoutons une dernière instruction pour libérer la mémoire de l'ordinateur :
Ajoutez le code suivant après le code existant pour le bouton de commande :
Appuyez sur F5 pour exécuter le programme et cliquez sur le bouton Commande pour le tester.
Quel a été le résultat ? ->