Dans cette section, pratiquons-le. Créez d’abord un objet COM, puis utilisez-le et enfin pensez aux améliorations.
Effectuez d’abord les deux étapes suivantes :
Exécutez Visual Basic ; sélectionnez le type de projet "StandardEXE" ; puisque les objets COM sont basés sur des classes, les classes sont en fait des packages, tout comme le code du module. donc:
Sélectionnez "PRoject" -> "AddClassModule" ; lorsque la boîte de dialogue correspondante apparaît, sélectionnez "'ClassModule", puis cliquez sur le bouton "Ouvrir".
De cette manière, un formulaire s'affiche sur le bureau, ainsi que la Classe1 contenue dans Projet1.
Ensuite, modifiez le nom de la classe vide :
Dans la fenêtre des propriétés de la classe, remplacez la propriété Name de la classe par CDog.
Il est à noter que par souci de distinction, chaque nom d'objet a un préfixe correspondant, par exemple, l'objet TextBox est précédé de "txt", le Form est précédé de "frm", et la classe peut être précédée de la majuscule. lettre "C" ou la lettre minuscule "cls" ", mais la première est utilisée ici.
Ajoutons du code pour le tester :
Dans la section déclaration générale de la classe CDog, ajoutez la déclaration de la variable :
->PublicNameAsString->Ensuite, ouvrez Form1 ;
Ajoutez un bouton de commande au formulaire ;
Ouvrez la fenêtre de code et ajoutez le code suivant au bouton de commande :
-> DimMyDogAsCDogSetMyDog=NouveauCDog
MonDog.Name="BillyMoore"
MsgBoxMyDog.Name
SetMyDog=Rien->
Expliquons la signification du code ci-dessus :
->DimMyDogAsCDog->Cette ligne d'instruction est utilisée pour demander à Visual Basic de définir un espace binaire pour l'objet CDog. Cependant, l'objet ne peut pas être utilisé pour le moment et doit attendre l'instruction suivante :
-> SetMyDog=NouveauCDog->Il est utilisé pour créer des instances de CDog. Cela signifie que le modèle MyDog auparavant vide devient un objet CDog qui peut désormais être utilisé.
-> MonDog.Name="BillyMoore"MsgBoxMyDog.Name->
La première ligne du code ci-dessus est utilisée pour définir la variable Name de MyDog et la deuxième ligne d'instructions est utilisée pour afficher le contenu de la variable dans la boîte de dialogue de message. enfin:
-> SetMyDog=Rien->Utilisé pour simplement vider l'objet MyDog.
Appuyez sur F5 pour exécuter et tester.
Et ça ? Mais en même temps, on ne peut s’empêcher de se demander quelle est la différence entre les modules standards et les modules de classe ? Regardons à nouveau l'exemple suivant :
Remplacez le code du bouton de commande par :
-> DimMyDogAsCDogSetMyDog=NouveauCDog
DimMyDog2AsCDog
SetMyDog2=NouveauCDog
MonDog.Name="BillyMoore"
MsgBoxMyDog.Name
MonDog2.Name="SadieMoore"
MsgBoxMyDog2.Name
SetMyDog=Rien
SetMyDog2=Rien->
Différent du code précédent, le code définit ici deux objets MyDog et MyDog2, qui sont deux objets indépendants basés sur CDog.
Appuyez sur F5 pour exécuter et tester.
Quel a été le résultat ? Est-ce que deux boîtes de dialogue apparaissent cette fois-ci ? L'un dit "BillyMoore" et l'autre "SadieMoore".
À l'exception du nom, chaque objet défini ci-dessus n'a aucun attribut réel, le processus suivant sera donc ajouté :
Ouvrez la classe 1 précédente ;
Déclarez les variables publiques suivantes :
-> PublicAgeAsInteger ->Ouvrez le Form1 précédent ;
Remplacez le code du bouton de commande par :
-> DimMyDogAsCDogSetMyDog=NouveauCDog
DimMyDog2AsCDog
SetMyDog2=NouveauCDog
MonDog.Name="BillyMoore"
MonDog.Age=4
MsgBoxMyDog.Name&"est"&MyDog.Age&"ans"
MonDog2.Name="SadieMoore"
MonDog2.Age=7
MsgBoxMyDog2.Name&"est"&MyDog2.Age&"ans"
SetMyDog=Rien
SetMyDog2=Rien->
Le code est similaire au précédent, sauf que la variable Age est utilisée ici.
Appuyez sur F5 pour exécuter et tester.
Deux boîtes de dialogue de message devraient apparaître indiquant le contenu du nom et de l'âge.
Essayez maintenant de définir la valeur d'âge de l'un des objets sur 1 000 ou 30 000. Vous voyez comment ça se passe ? Le programme fonctionne toujours normalement car la valeur maximale de la variable entière définie peut atteindre 32 767, mais le chien réel (Chien) n'a pas 30 000 ans.
Alors, comment gérer cette situation ?
->