8/ Programmation d'objets à partir de Visual Basic Version 5 :

Pour créer une classe dans un projet, il faut insérer un module de classe :
Commande Insertion/Module de classe
et le réserver entièrement à la définition de cette classe. Ce module est enregistré dans un fichier CLS, et sa propriété Name fournit le nom de la classe.

Les propriétés y sont ensuite déclarées comme des variables globales, et sont précédées par le préfixe :

Les méthodes y sont codées comme des procédures (Sub) ou des fonctions (Function), et sont précédées par le préfixe : Le constructeur de classe est une procédure (Sub) dont le nom est Class_Initialize().
Le destructeur de la classe est une procédure (Sub) dont le nom est Class_Terminate().
 

Exemple de la classe Service :

Programmation d'une classe service permettant de gérer les ressources d'un service, par exemple le nombre de licences d'un logiciel de type client serveur :
Nous allons créer dans un module Visual basic la classe suivante :
 
service=classe 
  Privé : 
      NbRessourcesLibres : Entier 
      NbRessourcesOccupées : Entier 
  Public : 
      Procédure service(NbRessources : entier) 
      Procédure PriseRessource() 
      Procédure RendreRessource() 
      Procédure RessourcesLibres() : entier 
Fclasse
'Déclaration des données membres privées de la classe d'objet

Private NbRessourcesLibres As Integer
Private NbRessourcesPrises As Integer

 'Déclaration des méthodes

Public Sub Class_Initialize()
     NbRessourcesLibres = 0
     NbRessourcesPrises = 0
End Sub

Public Sub Init(NbRessources As Integer)
     NbRessoucesLibres = NbRessources
End Sub

Public Sub PriseRessources()
     If  NbRessourcesLibres > 0 then
          NbRessourcesLibres = NbRessourcesLibres - 1
          NbRessourcesPrises = NbRessourcesPrises + 1
     Else
          MsgBox "Plus de ressources",48,"Accès service refusé"
     End If
End sub

Public Sub RendreRessources()
     If  NbRessourcesPrises > 0 then
          NbRessourcesLibres = NbRessourcesLibres + 1
          NbRessourcesPrises = NbRessourcesPrises - 1
     Else
          MsgBox "Plus de ressources à rendre",48,"Toutes les ressources sont disponibles"
     End If
End sub

Public Function NbRessources() As Integer
     NbRessources = NbRessourcesLibres
End function
 

Utilisation de la classe dans un autre module :

La création de la classe se fait en deux temps :

'Déclaration d'une variable objet pour contenir l'objet
Dim ServiceSQL As Service

'Création de l'objet et exécution automatique du constructeur
Set ServiceSQL = New Service

L'utilisation de l'objet se fait de la même façon que pour les objets standards :

ServiceSQL.Init(30)
ServiceSQL.PriseRessource()
ServiceSQL.RendreRessource()
 
Exemple de la classe service avec gestion de file d'attente
     
    PAGE PRECEDENTE
    SOMMAIRE
    PAGE SUIVANTE