• Aucun résultat trouvé

2 C Les modules 2 C 1 Définition

Les modules sont utiles pour regrouper du code indépendamment de toute feuille. Vous vous demandez sans doute à quoi cela peut servir puisque notre but est justement d’écrire du code lié aux contrôles des feuilles.

Par exemple, si vous développez du code pour gérer des comptes bancaires (un type Compte et des sous-programmes pour ouvrir, approvisionner et fermer un compte), il est intéressant de tout regrouper dans un module qui pourra être utilisé dans n’importe quel programme manipulant des comptes bancaires.

En fait, vous aurez compris que le module permet de regrouper du code utilisé dans plusieurs feuilles (voire dans plusieurs projets).

Comment utiliser un module dans une application ? Il suffit de l’ajouter dans le projet grâce à la commande Projet/Ajouter un module. Vous aurez deux onglets permettant d’en créer un nouveau ou de faire référence à un module déjà existant.

Pour fixer les idées, j’ai ajouté un nouveau module à mon application. Voici ce qui se passe alors :

1

Dit autrement, l’algorithmique ne s’est pas encore adaptée à l’événementiel.

Le code associé à notre feuille est toujours là.

Le projet s’est doté d’une rubrique Modules dans laquelle trône notre nouveau module.

Le module est un objet ne possédant qu’une propriété, son nom.

Voici la fenêtre du module que nous venons d’ajouter. On voit bien que c’est un module car la zone de liste des objets ne contient rien, ni contrôle ni feuille. (Notez Option Explicit suite à notre précédent paramétrage !)

Le bouton Objet est désactivé puisqu’un module n’est associé à aucune feuille.

3984 TG 48

Il faut bien comprendre que le code associé à une feuille n’est pas différent de celui que l’on trouve dans un module (enfin, procédures événementielles mises à part).

En fait, le code du module est stocké dans un fichier séparé d’extension .bas (pour BASic), tandis que le code lié à la feuille est directement stocké dans le fichier de cette dernière à la suite de la description de ses contrôles.

Pour preuve, voici le fichier Form1.frm décrivant notre feuille :

01 VERSION 5.00

02 Begin VB.Form Form1

03 Caption = "Form1" 04 ClientHeight = 1860 05 ClientLeft = 60 06 ClientTop = 345 07 ClientWidth = 4725 08 LinkTopic = "Form1" 09 ScaleHeight = 1860 10 ScaleWidth = 4725

11 StartUpPosition = 3 'Windows Default

12 Begin VB.TextBox Arrivée

13 Height = 315 14 Left = 1695 15 TabIndex = 2 16 Top = 930 17 Width = 2610 18 End

19 Begin VB.CommandButton Exécution

20 Caption = "Exécuter" 21 Height = 345 22 Left = 375 23 TabIndex = 1 24 Top = 915 25 Width = 1110 26 End

27 Begin VB.TextBox Départ

28 Height = 300 29 Left = 345 30 TabIndex = 0 31 Top = 240 32 Width = 1740 33 End 34 End

35 Attribute VB_Name = "Form1"

36 Attribute VB_GlobalNameSpace = False

37 Attribute VB_Creatable = False

38 Attribute VB_PredeclaredId = True

39 Attribute VB_Exposed = False

40 Option Explicit

41 42

43 Private Sub Exécution_Click()

44 If Départ.Text = "" Then

45 Arrivée.Text = "l'autre zone de texte est vide"

46 Else

47 Arrivée.Text = "l'autre zone de texte est remplie"

48 End If

49 End Sub

Expliquons un peu ces lignes :

lignes 2 à 34, nous décrivons l’objet Form1, constitué de : – ses propriétés classiques (lignes 3 à 11) ;

– un objet zone de texte appelé Arrivée (lignes 12 à 18) ; – un objet bouton appelé Exécution (lignes 19 à 26) ; – un objet zone de texte appelé Départ (lignes 27 à 33) ; – lignes 35 à 39, il y a des choses pas très claires ;

3984 TG 49

lignes 43 à 49, il y a notre procédure événementielle liée au bouton Exécution défini plus haut.

Cette démonstration n’avait d’autre objet que vous prouver que le code lié à une feuille est indissociable de la feuille elle-même puisque les deux constituent un seul fichier. Attention, il n’est pas question de modifier directement ce fichier, il n’est pas fait pour cela. Pour travailler sur la feuille et son code, ouvrez le fichier sous VB.

2 C 2. Rôle

VB exploite la notion de module, que vous fassiez de la programmation événementielle ou console. Un module, c’est quoi ? C’est un concept simple et intuitif que l’on retrouve sous une forme plus ou moins proche dans tous les langages de développement (fichiers inclus, librairies, unités…).

Je tourne autour du pot… Un module est tout simplement un ensemble de types, de variables et de sous-programmes (procédures et fonctions). En fait, c’est l’équivalent d’un programme, à la grosse différence près que le module ne possède pas forcément de programme principal. (Concrètement, un module sera un fichier source sur votre disque, tout comme un programme.)

L’intérêt d’un module, c’est d’être utilisé par un programme. Cela permet la réutilisabilité du code : si vous vous spécialisez dans la conception d’activités bancaires, vous aurez toujours besoin du type

Compte et des sous-programmes ouverture, fermeture, crédit et débit.

La solution la moins efficace consiste à réécrire (ou ajouter par copier/coller) ces type et sous- programmes dans chaque programme que vous allez écrire. Cette solution n’est pas terrible car si vous souhaitez modifier le type Compte ou la procédure ouverture, vous devrez modifier chacun des programmes déjà écrits.

Le bonne idée, c’est de mettre les sous-programmes et le type Compte dans un module appelé

banque (ou n’importe quel autre nom intuitif). Chacun des projets en ayant besoin fera référence à

ce module. C’est alors comme si son contenu était inclus dans le programme.

Vous commencez sans doute à mieux cerner l’intérêt des modules : vous pouvez vous écrire (ou acheter) des modules variés : un gérant les graphiques, un autre les sons, la souris, les calculs scientifiques et financiers… En fonction des programmes que vous écrirez, vous utiliserez un ou plusieurs de ces modules. Tout ce passe comme si vous vous dotiez d’extensions de VB.

Documents relatifs