Pour les programmeurs et les passionnés de programmation, la technologie des classes en VB est un point difficile dans l'apprentissage dans le processus de développement de logiciels à grande échelle, de modules (Module), de contrôles (Activeocx), de bibliothèques de liens (Activedll) et de classes (Classmoudle). constitue une ingénierie logicielle systématique et efficace, et la technologie de classe est la base de la technologie de contrôle et de bibliothèque de liens. Il est donc très important de maîtriser la théorie et les méthodes de programmation des classes.
(1) Définition de base et aperçu de l'application des classes ;
Une classe est un module de code de haut niveau qui contient des méthodes, des propriétés et des données membres. Elle n'entre pas seulement dans la portée du module, mais également un Activeocx sans interface graphique. Les programmeurs peuvent l'utiliser comme un contrôle, mais ils ne le peuvent pas. voyez-le. Il convient de noter que les classes ne peuvent pas être héritées.
Les classes nous permettent d'effectuer efficacement des opérations complexes sur un ou plusieurs objets spécifiques. Les actions de l'objet sont les méthodes de la classe, et les attributs de l'objet sont les processus d'attributs de la classe. Relativement parlant, si l'objet de la programmation est un groupe d'éléments, alors il est très approprié pour nous d'utiliser des modules standards. Dans les deux cas suivants, les classes doivent être utilisées pour le traitement du code :
(1) Créer un grand nombre d'objets avec des propriétés similaires ;
(2) Améliorer l'encapsulation du code.
Créer une classe est très simple Lors de l'écriture du code, sélectionnez l'élément "Ajouter un module de classe" dans le menu "Projet" pour ajouter une classe vide.
Les fichiers de classe sont généralement enregistrés avec une extension .cls.
(2) Implémentation de méthodes de classes ;
La méthode d'une classe est similaire à la fonction d'interface d'une bibliothèque de liens dynamiques. Elle peut accepter les paramètres de type spécifiés provenant d'autres codes de formulaire et les transmettre à la classe. De manière générale, les méthodes de classe peuvent spécifier s'il existe une valeur de retour. Il s'agit généralement d'une procédure publique en classe. Prenons l'exemple de code suivant, qui entraîne le rejet d'une zone de mot de passe par une saisie autre que des lettres :
(1) code de type cls ;
Vérification des variables OptionExplicit
PRivateWithEventsmytxtAsTextBox
'Les méthodes de cette classe acceptent et contrôlent une zone de mot de passe texte
DimisNUMAsBoolean
'Variables au niveau du module de la classe
PublicSubAttach(itTEXTAsTextBox)
'Accepter les variables externes dans mytxt
Setmytxt=itTEXT
FinSub
PrivateSubmytxt_KeyUp (KeyCodeAsInteger, ShiftAsInteger)
estNUM=(KeyCode>=65)Et(KeyCode<=90)
'Testez si la saisie au clavier dans la zone de mot de passe contient des lettres anglaises
IfisNUM=FalseAlors
Bip
montxt.Texte=
« Si la saisie n'est pas une lettre anglaise, la cloche sonnera et le contenu de la boîte de mot de passe sera effacé.
MsgBox saisie de caractères illégale !
FinSi
Debug.Printmytxt.Text
'Contenu de la boîte de mot de passe de sortie de débogage
FinSub
'Code de fin de cours
(2) Référence de classe ;
Les classes qui ont été écrites peuvent être référencées dans deux formats. La première manière : Private (public ou dim) myCLS (nom de classe spécifié) AsNewcls (le nom de classe écrit) ; effectuez d'abord une déclaration au niveau du module - DimmyCLSAscls - dans le code du formulaire, puis effectuez une définition spécifique - Setmycls=Newcls dans le processus de code spécifique. Il peut y avoir des différences dans l'efficacité et la simplicité du code entre ces deux méthodes, mais dans la pratique de programmation de l'auteur, il n'y a pas de sensation particulière. Cependant, je préfère la première méthode car elle est plus pratique à écrire. De plus, à la fin du code, c'est une très bonne habitude de programmation d'utiliser SetmyCLS=Nothing pour annuler l'occupation des ressources de la classe.
Dans le formulaire form1 (le formulaire a une zone de contrôle de mot de passe text1, passworldchar=*), ajoutez le code suivant :
OptionExplicite
PrivémyCLSAsNewcls
'Citation cls
PrivateSubForm_Load()
monCLS.AttachText1
'Classe de démarrage
FinSub
'N'oubliez pas de libérer les ressources à la fin du code
PrivateSubForm_Unload (CancelAsInteger)
SetmyCLS=Rien
Fin
FinSub
Le code dans cet article montre le processus d'écriture du code et la méthode d'appel de la méthode de classe (bien qu'il soit très similaire à l'événement de la classe). Son effet est que si une non-lettre est saisie dans la zone du mot de passe, le système le fera. L'anneau et la boîte de mot de passe seront supprimés des données originales - protégeant le mot de passe dans une certaine mesure.
Une méthode de classe ne nécessite aucun paramètre, ce qui est similaire à une fonction ou une procédure publique. C'est également la plus largement utilisée dans les classes. Dans le prochain article, j'expliquerai comment utiliser les propriétés, les événements et les méthodes des classes pour une programmation complète.
Nous avons discuté de la théorie des classes, de la création de classes et de la pratique de programmation des méthodes de classe. En fait, la principale raison pour laquelle les classes peuvent être largement utilisées en génie logiciel est qu'elles peuvent très facilement encapsuler de nombreux attributs nécessaires à la programmation. permet non seulement aux programmeurs de surmonter dans une certaine mesure la complexité de la conception et du débogage des contrôles (ocx) et des bibliothèques de liens (dll), mais améliore également la simplicité et l'efficacité des codes de programme - cet article discutera de la programmation complète des classes, y compris les méthodes. , attributs et événements de base.
(1) Caractéristiques et définitions des attributs de classe ;
Semblables aux propriétés des contrôles standard, les propriétés de classe permettent à l'utilisateur d'attribuer des valeurs dans une plage de données spécifiée, et ces valeurs sont partagées par diverses parties du code au sein de la classe. L'acquisition et le transfert de propriétés nécessitent une programmation via les instructions PropertyLet et PropertyGet. Bien entendu, nous devons d'abord définir les variables correspondantes au niveau global ou module dans la classe.
(2) Attributs et définitions de base des événements ;
Semblables aux événements du formulaire, les classes ont également deux événements de base, Class_Initialize (déclenché lorsque la classe est chargée) et Class_Terminate (déclenché lorsque la classe est déchargée), tous deux privés. En fait, nous pouvons complètement ignorer ces deux événements – à condition de penser à compléter les méthodes et propriétés de la classe.
Les classes peuvent également définir leurs propres événements, qui sont similaires au format de programmation des méthodes, sauf que le mot-clé WithEvents est requis pour la déclaration des paramètres, et que l'événement ne peut pas avoir de paramètres nommés ou de paramètres facultatifs, et qu'il n'a pas de valeur de retour.
En fait, des méthodes et propriétés bien structurées peuvent remplacer complètement les événements de classes structurées de manière complexe.
(3) Exemples de programmation de méthodes de classe, d'événements et de propriétés ;
Le but de ce programme est de contrôler tous les tris majuscules, minuscules et inversés du contenu de la zone de texte du formulaire à travers les classes.
Afin de faciliter l'écriture et l'appel du code, j'ai référencé la méthode de programmation d'énumération dans la classe.
Le code suivant est dans la classe Class1 :
OptionExplicite
PrivateWithEventsmyTXTAsTextBox
'Interface des paramètres de méthode
PublicEnumsTYLE
Attribut minuscule de Lcaseit
Attribut de capitalisation de Lbigit
Attribut de tri inversé de Nlogoit
FinEnum
'Énumération personnalisée, utilisée pour implémenter l'affectation automatique des attributs
PrivémvarBiaozhiAssTYLE
'Implémenter la connexion des constantes d'énumération
PublicFunctiondONE()AsString'
'La méthode DONE est utilisée pour définir le
'Effectuer les opérations de conversion de caractères correspondantes dans la zone de texte du formulaire
'Et renvoie la chaîne convertie
IfmvarBiaozhi=NlogoitThen
dONE=StrReverse(monTXT)
'Tri inversé
SinonIfmvarBiaozhi=LcaseitThen
dONE=LCase(monTXT)
'Forcer la conversion en minuscules
Autre
dONE=UCase(monTXT)
'Forcer la conversion en majuscules
FinSi
FinFonction
'La méthode DONE se termine
PublicPropertyLetBiaozhi (ByValvDataAssTYLE)
'Obtenir la valeur attribuée à l'attribut
mvarBiaozhi=vDonnées
Propriété de fin
PublicPropertyGetBiaozhi()AssTYLE
'Transférer les valeurs d'attribut à la classe
SetBiaozhi=mvarBiaozhi
Propriété de fin
PublicSubAttach(itTEXTAsTextBox)
'Méthode de classe de connexion
SetmyTXT=itTEXT
FinSub
PrivateSubClass_Initialize()
'Cet événement est activé lorsque la classe est chargée
MsgBox Bonjour ! Ce programme vous montre les techniques de programmation utilisant des méthodes de classe, des propriétés et des événements !
FinSub
PrivateSubClass_Terminate()
'Cet événement est activé lorsque la classe est déchargée
MsgBox Bonjour ! N'oubliez pas de remplir le code après la révocation de l'objet dans Class_Terminate !
FinSub
'Le code de la classe est partout
(4) Programmation de référence du code de formulaire ;
Ajoutez le contrôle de texte TEXT1, le contrôle de liste déroulante COMBO1 et le bouton de commande COMMAND1 (CAPTION = Démarrer la conversion) pour former FORM1 et ajustez les trois contrôles aux positions appropriées.
DimmyTAsNewClass1
'Référence de classe
PrivateSubForm_Load()
Combo1.Effacer
Conversion en majuscules de la chaîne Combo1.AddItem
Conversion en minuscules de chaîne Combo1.AddItem
Tri inversé de la chaîne Combo1.AddItem
Combo1.ListIndex=0
'Ajouter des options d'attribut à la zone de liste
FinSub
PrivateSubCommand1_Click()
'Activer la classe lorsque le bouton de commande est enfoncé
monT.AttachText1
'Connexion des paramètres de méthode
SelectCaseCombo1.ListIndex
Cas0
monT.Biaozhi=Lbigit
Cas 1
myT.Biaozhi=Lcaseit
Cas2
myT.Biaozhi=Nlogoit
FinSélectionner
'Selon la sélection dans la zone de liste, attribuez une valeur à l'attribut Biaozhi de la classe
'Notez que dans l'environnement de programmation, les valeurs d'attribut ci-dessus sont automatiquement ajoutées
Text1.Text=monT.dONE
'Renvoie la chaîne après le tri
FinSub
PrivateSubForm_Unload (CancelAsInteger)
SetmyT=Rien
Fin
'Bonnes habitudes de programmation
FinSub
Que diriez-vous, notre code a l'air si concis qu'on a l'impression d'utiliser un contrôle, qui peut non seulement être appelé à volonté, mais aussi utiliser facilement la fonction d'invite automatique de VB.
(5) Résumé des techniques de programmation en classe ;
À proprement parler, les classes sont une technologie très utile dans la programmation VB, et elles sont également difficiles à apprendre et à maîtriser. Les classes sont largement et efficacement utilisées dans les projets logiciels à grande échelle, afin d'améliorer les logiciels. Pour plus d'efficacité et de clarté du code, vous devez éviter d'utiliser davantage de modules de classe, de contrôles et de bibliothèques de connexions et les remplacer par des modules standard.
L'exemple de code présenté dans cet article est relativement simple, mais il couvre tous les aspects de la technologie de programmation de modules. J'espère que les débutants pourront en tirer des leçons et que les programmeurs pourront en discuter ensemble. Nous devrions croire que quelle que soit la complexité des immeubles de grande hauteur, ils sont tous constitués de briques ordinaires. De même, quelle que soit la complexité des projets logiciels, ils sont composés d'énoncés de programme de base. Les passionnés de programmation et les programmeurs sont la seule différence. L'analyste est que les programmes construits avec les mêmes énoncés de programme sont différents. ->