Cours Visual Basic le module de classe

Formation Visual Basic, tutoriel & guide de travaux pratiques en pdf.

Ajouter une feuille (form)

Pour ajouter une feuille dans notre projet, le principe est entièrement le même. Cliquez sur le bouton droit de la souris sur le nom de votre projet, choisir Ajouter (Add) puis Feuille (Form). Cette petite fenêtre s’ouvre et vous permet de choisir le style de feuille que vous désirez insérer.
Les plus intéressantes
Form :feuille normale standard (pas MDI)
Astuce du jour :les petites astuces affichées par certain logiciel (Tips of the day)
A propos de :informations sur la version, les auteurs, … (About)
Ecran d’accueil :le Splash Screen bien connu
IMPORTANT
Veillez à bien Enregistrer sous les ajouts que vous avez fait à votre projet. J’insiste absolument sur le fait de sauvegarder régulièrement via cette méthode votre application même si vous trouvez fastidieux de toujours confirmer les noms des objets que vous enregistrez. Je pense que cela vous évitera bien des désagréables surprises lors de votre développement.
Vous avez probablement remarqué que je me suis simplement attachée à l’ongletNouveau et qu’il existe un onglet Existant. Je me permets de vous renvoyer au chapitre VII pour aborder ses fonctionnalités.

L’utilité du module BAS

Le module BAS est l’endroit où l’on peut regrouper des informations d’initialisation, de répétition, # d’une application. Il permet de sortir les objets des limites de la feuille à laquelle ils auraient appartenu. Il faut cependant faire très attention à la portée des fonctions qui y prennent place car elles seront accessibles de toutes les feuilles de votre projet.
Il va vous servir de référence pour le passage de paramètres en direct, pour les routines répétitives et bien d’autres choses encore que vous allez imaginer vous-même dès que le principe du paramétrage sera expliqué.
Par exemple :
J’ai un fond d’écran uni spécifique à chaque feuille de mon application. Dans leForm_Load de chacune de mes feuilles, je charge un contrôle image (propriété Stretch = True) avec le fond désiré ImgFond.Picture = LoadPicture(App.Path & « \graphiques\fondfeuille1.jpg »)
Le graphique de fond n’a évidemment pas la taille de ma feuille car il ne la connaît pas. Dans le module, j’ai donc créé une routine qui dimensionne mon fond à la totalité de ma feuille :
Public Sub ImageFond(Feuille As Form)
Feuille.ImgFond.Move 0, 0, Feuille.ScaleWidth, Feuille.ScaleHeight
End Sub
Je l’appelle simplement dans chacune de mes feuilles :
Private Sub Form_Resize()
ImageFond Me
End Sub
Voici donc un exemple parmi bien d’autres de l’utilité du module BAS.

Le paramétrage

Le paramétrage est important pour la portabilité du projet aussi bien que pour votre propre utilisation. Imaginez que vous changez le nom d’un répertoire pour une quelconque raison. Dès lors, vous devez passer tout votre programme en revue afin d’effectuer les changements d’adressage du logiciel, des fichiers, des bases de données, des graphiques,etc
Non !!! En préparant à l’avance les styles d’adressages que vous allez utiliser, il vous suffira de changer un seul fichier texte et votre application fonctionnera toujours correctement. Ce fichier est en général appelé un fichier INI.
Une instruction va vous servir tout au long de l’application pour référencer l’adressage désiré App:.Path Cette nomenclature donne, à tout moment, l’adresse d’installation de votre application. A vous de la compléter avec les répertoires que vous avez créés :
MonChemin = App.Path & ¨\MonRepertoire\MonFichier.ext¨
Dans le chapitre suivant, nous allons voir en détail comment créer, lire et écrire dans un tel fichier.

Le fichier INI

Création

C’est un simple fichier texte qui peut être créé avec le Bloc Notes. Il suffit de lui attribuer une extension INI au lieu de TXT. Ce qui le différencie d’un fichier texte, c’est sa structure. Il est composé de sections et de sous-sections qui permettent, de part le nom qu’on leur attribue, de savoir quels types de données vont y être sauvegardées. Soyez le plus explicite possible dans le choix de vos noms, vous vous faciliterez le travail lors de la programmation.
Le plus simple est de prendre un exemple :
Le nom de la section se place entre crochets. Ici, je choisis de créer la section qui a trait à la rubrique  » A propos  » de l’application :
Je crée les sous-sections qui correspondent aux données dont j’ai besoin pour afficher ma feuille  » A propos  » et qui sont sujet à d’éventuelle modification. La plus connue étant sûrement le numéro de la version.
Attribuez maintenant les valeurs à vos sous-sections :
Puisque ces données peuvent être lues à tout moment par l’utilisateur de votre projet lorsqu’il clique sur le menu  » A propos « , la routine de lecture de ce fichier DOIT se trouver dans le module BAS. Vous voyez une autre utilisation courante du module BAS.
Ouvrez la fenêtre de code de votre module et tapez :
Vous avez maintenant toutes les références pour utiliser votre fichier.

Lecture

Dans votre feuille « A propos », il vous suffit de lire les données du fichier les unes après les autres et de les afficher dans les zones prévues à cet effet. Pas besoin de  » fouiller  » dans le code pour effectuer les changements ultérieurs, il faudra juste modifier la(les) valeur(s) dans le fichier INI pour qu’elle(s) soi(en)t changée(s) lors de l’exécution du programme.
Pour lire vos données :
Private Sub Form_Load()
Dim CheminFichierIni As String
CheminFichierIni = App.Path & « \MonFichier.ini »
TxtDateCreation.Text = LitDansFichierIni(« APROPOS », « DateCreation », CheminFichierIni)
LblAuteur1.Caption = LitDansFichierIni(« APROPOS », « Auteur1 », CheminFichierIni)
End Sub
Vous constatez qu’il faut passer le nom de la section, le nom de la sous-section et l’adressage complet du fichier INI pour obtenir la valeur inscrite en correspondance. C’est pourquoi j’insiste pour que vous utilisiez des noms
concrets de section et sous-section.

Ecriture

Le principe est le même que la lecture mais en utilisant la routine d’écriture. Tapez donc dans votre module le code suivant :
Public Function EcritDansFichierIni(Section As String, Cle As String, _
Valeur As String, Fichier As String) As Long
EcritDansFichierIni = WritePrivateProfileString(Section, Cle, Valeur, Fichier)
End Function
Et à n’importe quel endroit de votre application :
EcritDansFichierIni « MaSection », « MaSousSection », MaValeur, CheminFichierIni
Vous avez deviné que vous pouvez utiliser ce système pour sauvegarder des valeurs, d’une feuille à une autre, d’un projet à un autre, etc.
NB : il n’est pas nécessaire que le fichier existe pour écrire une section/sous-section. Le fichier sera automatiquement créé lors du premier appel à la routine d’écriture.
Vous pouvez donc imaginer tout ce que vous voulez en respectant la structure Section / Sous-section.

Le contrôle ImageList

Utilité

Un contrôle tout simple que vous pouvez initialiser dans la fenêtre de démarrage de votre application et qui permet de lister et référencer les icônes de votre projet. Du moins, c’est la fonction que personnellement je lui attribue dans mon développement.

Initialisation

Il se pose sur votre feuille initiale comme n’importe quel contrôle VB et est invisible à l’exécution. Il se nomme par
défaut ImageList1 et correspond à cette icône . Cliquez droit dessus et vous obtenez cette fenêtre :
L’action qui nous intéresse le plus estPropriétés . Cliquez dessus et vous aller vous retrouver devant une petite fenêtre comme celle-ci :
Dans l’ongletGénéral , vous allez pouvoir choisir la taille de vos icônes. Faites des essais afin de déterminer ce qui vous intéresse le mieux.
Choisissez l’ongletImages et cliquez sur Insérer une image . Dès lors, vous allez pouvoir parcourir votre disque dur à la recherche de l’icône à insérer. Dès que vous avez choisi l’icône, vous pouvez constatez qu’elle porte le n° d’index 1, ne l’oubliez pas. Nommez-la en lui attribuant uneKey (clé) comme dans l’exemple ci-dessous.
Placez une référence dans le Tag si vous connaissez cette utilisation, sinon, ce n’est pas obligatoire. Choisissez Appliquer pour compléter l’insertion de cette icône. Recommencez ce processus autant de fois que vous désirez insérer une icône.

Utilisation

Lorsque vous avez composé votre liste d’icônes, vous pouvez vous en servir dans toutes les feuilles de votre projet en les appelant soit par leur index, soit par leur clé (Key).
Imaginons un contrôle Image nommé ImgIcone avec une propriété Stretch = True. Dans la feuille où se trouve le contrôle ImageList1 , il suffit de taper :
ImgIcone.Picture = Me.ImageList1.ListImages(1).Picture
Et dans toutes les autres feuilles, sachant que la feuille principale s’appelleFrmPrincipale :
ImgIcone.Picture = FrmPrincipale.ImageList1.ListImages(1).Picture
Cas intéressant
Si vous désirez que pour certains contrôles, le curseur afficher une icône différente lorsque vous pointez dessus, il
y a une solution très simple :
Par exemple, je désire que l’icônemain (clé) que j’aurais inclu dans monImageList1 apparaisse lors du passage de la souris sur tous les contrôles boutons (CommandButton) de ma feuille :
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CommandButton Then
Ctrl.MousePointer = vbCustom
Set Ctrl.MouseIcon = FrmPrincipale.ImageList1.ListImages(« main »).Picture End If
Next

Le fichier RES

Création

Il s’agit d’unCompléments et correspond à l’icône . Si vous ne voyez pas cette icône, cliquez :
Compléments Gestionnaire de compléments Editeur de ressources VB6
Pour l’ajouter à votre projet, procédez comme pour une feuille :Projet – Ajouter – Fichier de ressources ou par le clic droit sur le nom de projet dans l’explorateur de projets :
Nommez-le et sauvegardez-le dans le répertoire de votre application.
Cliquez sur l’icône et vous allez avoir une fenêtre qui s’ouvre :
Passez votre souris sur les différentes icônes de cette feuille et vous allez comprendre que vous pouvez ajouter beaucoup de choses à ce ficher de ressources. Il faut savoir que toutes les images, toutes les icônes, # que vous insérez dans ce fichier seront compilées et compressées dans ce fichier et, donc, incluses dans votre application lors de son déploiement sur un autre poste. A condition, bien entendu, d’être passé par un empaquetage VB.

Lecture

Pour utiliser les données encodées dans votre fichier de ressources, rien de plus simple :
Me.Caption = LoadResString(100) ‘pour le nom de la feuille en cours
ImgFond.Picture = LoadResPicture(« FondImage », 0) ‘pour l’image de fond d’une feuille
Remarquez l’utilisation deLoadResString ou LoadResPicture suivant le style de données auxquelles on accède. Le plus intéressant, à mon avis, est la Table de chaînes car, si vous y réfléchissez bien, elle peut vous permettre de déployer votre application en plusieurs langues sans aucun effort particulier, si ce n’est la création deTables de chaînes différentes.

Le module de classe

Création

Le module de classe est utilisé lors de traitements complexes et/ou répétitifs. Avant de voir comment créer un module de classe, il faut préciser certains points :
Il possède des propriétés, des méthodes et des événements :
• Les propriétés sont du style Lecture – Ecriture correspondant au vocable LET – GET.
• Les méthodes renvoient des valeurs de retour (sous-routine ou fonction)
• Les événements ne seront pas abordés dans ce cours
Pour ajouter un module de classe, vous pouvez procéder comme pour une feuille ou un module BAS.

I – Introduction
II – Débuter un projet
a – Analyse
b – Création du nom et de l’emplacement du projet
c – Ajouter des feuilles/modules/concepteurs au projet
1 – Ajouter un module BAS
2 – Ajouter une feuille (form)
d – L’utilité du module BAS
e – Le paramétrage
III – Le fichier INI
a – Création
b – Lecture
c – Ecriture
IV – Le contrôle ImageList
a – Utilité
b – Initialisation
c – Utilisation
V – Le fichier RES
a – Création
b – Lecture
VI – Le module de classe
a – Création
b – Lecture
c – Ecriture
VII – Copie d’objets existants
a – Récupération de feuilles/modules créés dans d’autres projets
b – Récupération d’un DataReport/concepteur créé dans d’autres projets
VIII – Synthèse
IX – Conclusion
X – Téléchargements

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *