Cours VB
Cours VB
1
Introduction à Visual Basic
Ce chapitre comporte des informations sur l'installation de Microsoft Visual Basic sur votre système, l'ajout ou la
suppression de composants Visual Basic, l'utilisation de l'aide en ligne ainsi que des sources d'apprentissage ou d'aide
complémentaires sur l'utilisation de Visual Basic.
Sommaire
Introduction à Visual Basic
Installation de Visual Basic
Sources d'aide
Ahmed ABOUABDELLAH 1
Visual Basic est disponible en trois versions, chacune étant optimisée pour répondre à des besoins de développement
spécifiques.
L'Édition Initiation permet aux programmeurs de créer facilement de puissantes applications pour Microsoft Windows
95 et Windows NT®. Elle comprend tous les contrôles intrinsèques ainsi que les contrôles Grid, Tab et les contrôles
dépendants. La documentation fournie avec cette édition inclut la documentation papier Guide de l'utilisateur, une aide
en ligne et les Manuels en ligne Visual Basic.
L'Édition Professionnelle offre aux informaticiens une gamme d'outils aux fonctionnalités complètes permettant de
développer des solutions autonomes. Elle comprend toutes les fonctionnalités de l'Édition Initiation ainsi que des
contrôles ActiveX supplémentaires, notamment les contrôles Internet, et le module Crystal Reports. La documentation
fournie avec l'Édition Professionnelle comprend le Guide de l'utilisateur, l'aide en ligne, le Guide des composants et le
Manuel de l'utilisateur de Crystal Reports pour Visual Basic.
L'Édition Entreprise permet aux professionnels de créer des applications partagées fiables au sein d'une équipe. Elle
comprend toutes les fonctionnalités de l'Édition Professionnelle, ainsi que le module Automation Manager, le
Gestionnaire de composants, des outils de gestion de base de données, le système de contrôle de version orienté projet
Microsoft Visual SourceSafe ™, et bien plus encore. La documentation papier fournie avec l'Édition Entreprise comprend
la totalité de
la documentation de l'Édition Professionnelle, ainsi que le Guide de création d'applications client/serveur avec
Visual Basic et le Guide de l'utilisateur de SourceSafe.
Installation de Visual Basic
Pour installer Visual Basic sur votre ordinateur, utilisez le programme d'installation. Ce dernier installe le programme
Visual Basic, le système d'aide, les exemples d'applications, les Manuels en ligne Visual Basic et d'autres composants du
produit du CD-ROM sur votre disque dur.
Important Il ne vous suffit pas de copier les fichiers du CD-ROM sur votre disque dur et de lancer Visual Basic. Vous devez utiliser le
programme d'installation, qui décompresse et installe les fichiers dans les dossiers appropriés.
Pour plus d'informations sur la configuration requise, reportez-vous à la section « Configuration requise pour les
applications Visual Basic » de l'annexe A, « Spécifications, limitations et formats de fichier de Visual Basic ».
Ahmed ABOUABDELLAH 2
Lorsque vous exécutez le programme d'installation, un dossier est créé pour Visual Basic ; vous pouvez ensuite sélectionner
les composants Visual Basic à installer.
À l'exception des fichiers du système d'exploitation du dossier \Os, les fichiers du CD-ROM ne sont pas compressés et
peuvent donc être utilisés directement à partir de ce dernier. Par exemple, si vous décidez de ne pas installer les fichiers
d'aide et les Manuels en ligne sur votre disque dur, vous pouvez toujours les exécuter depuis Visual Basic. Il reste possible
d'appuyer sur F1 pour obtenir les messages d'aide correspondants ; l'aide contextuelle est donc toujours disponible.
Pour plus d'informations consultez le fichier Lisezmoi afin d'obtenir des instructions détaillées sur l'installation de
Visual Basic.
Ahmed ABOUABDELLAH 3
Manuels en ligne Visual Basic
Les Manuels en ligne Visual Basic rassemblent la totalité de la documentation Visual Basic à un emplacement unique. Ils
comprennent également des sections et des animations multimédia non disponibles dans la documentation papier. Par
ailleurs, ils offrent la possibilité de consulter toutes les sections disponibles sur un sujet précis dans la documentation papier
ou en ligne de Visual Basic, en une seule recherche.
Ahmed ABOUABDELLAH 4
.oca Fichier cache TypeLib de contrôles
.pag Fichier Page de propriétés
.pgx Fichier binaire Page de propriétés
.res Fichier de ressources
Ahmed ABOUABDELLAH 5
Extension Description
.swt Fichier de modèle des Assistants Visual Basic
.tlb Fichier TypeLib Automation à distance
.vbg Fichier groupe de projets Visual Basic
.vbl Fichier licence de contrôles utilisateur
.vbp Fichier projet Visual Basic
.vbr Fichier d'inscription Automation à distance
.vbw Fichier environnement de travail du projet Visual Basic
.vbz Fichier modèle de l'Assistant d'installation
Fichiers d'exécution
Lors de la compilation de votre application, tous les fichiers de conception nécessaires sont inclus dans les fichiers
exécutables, dont vous trouverez la liste ci-dessous :
Extension Description
.dll Composant ActiveX in-process
.exe Fichier exécutable ou composant ActiveX
.ocx Contrôle ActiveX
.vbb Fichier d'amorçage de document ActiveX
.vbd Fichier d'état de document ActiveX
Ahmed ABOUABDELLAH 6
Chapitre
2
Développement d'une application dans Visual Basic
Il vous suffit de quelques minutes pour créer votre première application Visual Basic. Vous élaborez l'interface
utilisateur en « dessinant » des contrôles sur une feuille, notamment des zones de texte et des boutons de commande. Vous
définissez ensuite les propriétés de la feuille et des contrôles de façon à spécifier des valeurs telles que les légendes, la
couleur et la taille. Pour terminer, vous écrivez le code qui donnera ainsi naissance à l'application. Les principales étapes de
la création de votre première application vous éclaireront sur les principes que vous appliquerez dans toutes les autres
applications que vous serez amené à développer.
Ce chapitre fournit une vue d'ensemble du processus de développement des applications, explique la terminologie et les
compétences requises pour utiliser Visual Basic, et décrit de manière détaillée plusieurs applications simples.
Sommaire
Concepts de Visual Basic
Éléments de l'environnement de développement intégré (IDE)
Votre première application Visual Basic
Éléments clés de Windows : fenêtres, événements et messages
Un ouvrage complet serait nécessaire pour décrire les mécanismes internes de Windows. La connaissance approfondie de
tous ces détails techniques n'est cependant pas nécessaire. Une version simplifiée de la mécanique de fonctionnement de
Windows s'articulerait autour de trois concepts essentiels : les fenêtres, les événements et les messages.
Considérez qu'une fenêtre est simplement une zone rectangulaire dotée de ses propres limites. Sans doute, connaissez-vous
déjà plusieurs types de fenêtres : une fenêtre Explorateur dans Windows 95, une fenêtre de document dans un programme de
traitement de texte, ou encore une boîte de dialogue qui apparaît pour vous rappeler
un rendez-vous important. S'il s'agit là des exemples les plus courants, il existe bien d'autres types de fenêtres. Un bouton de
commande est une fenêtre. Les icônes, les zones de texte, les boutons d'option et les barres de menus constituent tous des
fenêtres.
Le système d'exploitation Microsoft Windows gère ces nombreuses fenêtres en affectant à chacune d'elles un numéro
d'identification unique (descripteur de fenêtre ou hWnd). Le système surveille en permanence chacune de ces fenêtres de
façon à déceler le moindre événement ou signe d'activité. Les événements peuvent être engendrés par des actions de
l'utilisateur (notamment lorsque celui-ci clique un bouton de la souris ou appuie sur une touche), par un contrôle
programmé, voire même par des actions d'une autre fenêtre.
Chaque fois qu'un événement survient, un message est envoyé au système d'exploitation. Celui-ci traite le message et le
diffuse aux autres fenêtres. Chacune d'elles peut alors exécuter l'action appropriée de la manière prévue pour ce type de
message (notamment, se redessiner si elle n'est plus recouverte par une autre fenêtre).
Comme vous pouvez l'imaginer, il n'est pas simple de faire face à toutes les combinaisons possibles de fenêtres,
d'événements et de messages. Heureusement, Visual Basic vous épargne la gestion de tous les messages de bas niveau. La
plupart de ceux-ci sont automatiquement gérés par Visual Basic tandis que d'autres sont mis à disposition sous forme de
procédures Event afin de vous faciliter la tâche. Vous pouvez aussi écrire rapidement des applications puissantes sans vous
préoccuper de détails inutiles.
Description du modèle événementiel
Dans les applications traditionnelles ou « procédurales », c'est l'application elle-même, et non un événement, qui contrôle les
parties du code qui sont exécutées, ainsi que leur ordre d'exécution. Celle-ci commence à la première ligne de code et suit un
chemin défini dans l'application, appelant les procédures au fur et à mesure des besoins.
Dans une application événementielle, le code ne suit pas un chemin prédéterminé. Différentes sections du code sont
exécutées en réaction aux événements. Ceux-ci peuvent être déclenchés par des actions de l'utilisateur, par des messages
provenant du système ou d'autres applications, voire même par l'application proprement dite. L'ordre de ces événements
détermine l'ordre d'exécution du code. Le chemin parcouru dans le code de l'application est donc différent à chaque
exécution du programme.
Ahmed ABOUABDELLAH 7
Comme il est impossible de prévoir l'ordre des événements, votre code doit émettre certaines hypothèses quant à « l'état du
système » au moment de son exécution. Lorsque vous élaborez des hypothèses (par exemple quand vous supposez qu'un
champ de saisie doit contenir une valeur avant l'exécution de la procédure chargée de traiter cette valeur), vous devez
structurer votre application de telle sorte que cette hypothèse soit toujours vérifiée (par exemple en désactivant le bouton de
commande qui démarre la procédure aussi longtemps que le champ de saisie ne contient pas une valeur).
Votre code peut également déclencher des événements pendant l'exécution. Par exemple, la modification par
programmation du contenu d'une zone de texte déclenche l'événement Change qui lui est associé et donc l'exécution du
code éventuellement contenu dans cet événement. Si vous avez estimé que cet événement ne serait déclenché que par
dialogue avec l'utilisateur, vous risquez d'être confronté à des résultats inattendus. C'est pour cette raison qu'il est important
de bien comprendre le modèle événementiel et de le garder toujours à l'esprit tout au long de la phase de création d'une
application.
Développement interactif
Le processus traditionnel de développement des applications peut être divisé en trois étapes distinctes : l'écriture, la
compilation et la vérification du code. Contrairement aux langages traditionnels, Visual Basic adopte une approche
interactive dans laquelle disparaissent les distinctions entre ces trois étapes.
Dans la plupart des langages, une erreur commise dans l'écriture du code n'apparaît qu'au moment de la compilation de
l'application. Vous devez ensuite rechercher et corriger l'erreur avant de recommencer le cycle de compilation, et répéter ce
processus pour chaque erreur. Visual Basic procède de manière totalement différente : il interprète le code au fur et à mesure
de sa saisie, interceptant et signalant immédiatement la plupart des erreurs de syntaxe et des fautes d'orthographe. C'est un
peu comme si un expert était assis à vos côtés, vérifiant chaque ligne de code que vous introduisez.
Outre la détection immédiate des erreurs, Visual Basic compile également partiellement le code au moment de sa saisie.
Lorsque vous êtes prêt à exécuter et vérifier votre application, la compilation est déjà presque pratiquement terminée. Si le
compilateur découvre une erreur, il l'affiche en surbrillance dans votre code. Vous pouvez alors corriger l'erreur et poursuivre
la compilation sans devoir recommencer depuis le début.
En raison de la nature interactive de Visual Basic, vous exécuterez fréquemment votre application tout au fil de son
développement. Vous pourrez ainsi tester les effets de votre code alors même que vous l'écrivez, plutôt que d'attendre sa
compilation ultérieure.
Éléments de l'environnement de développement intégré (IDE)
L'environnement de travail de Visual Basic est souvent désigné sous le nom de « environnement de développement
intégré » (IDE, Integrated Development Environment), car il intègre de nombreuses fonctions variées telles que la
création, la modification, la compilation et le débogage au sein du même environnement. Dans la plupart des outils de
développement traditionnels, chacune de ces fonctions est exécutée par un programme distinct doté de sa propre
interface.
Lorsque vous démarrez Visual Basic pour la première fois, vous voyez apparaître l'interface de l'environnement de
développement intégré, comme illustré à la figure 2.1.
Ahmed ABOUABDELLAH 8
Figure 2.1 L'environnement de développement intégré Visual Basic
Barre de menus
Affiche les commandes qui vous permettent d'utiliser Visual Basic. Outre les menus habituels, à savoir Fichier, Edition,
Affichage, Fenêtre et ? (Aide), des menus permettent d'accéder à des fonctions spécifiques nécessaires à la programmation,
notamment les menus Projet, Format et Débogage.
Menus contextuels
Contiennent des raccourcis vers les actions les plus fréquemment exécutées. Pour ouvrir un menu contextuel, cliquez le
bouton droit de la souris sur l'objet en cours d'utilisation. La liste des raccourcis accessibles à partir des menus contextuels
dépend de la partie de l'environnement dans laquelle vous cliquez le bouton droit de la souris. Par exemple, le menu
contextuel affiché lorsque vous cliquez le bouton droit de la souris dans la boîte à outils vous permet d'afficher la boîte de
dialogue Composants, de masquer la boîte à outils, d'activer et de désactiver son ancrage, ou encore de lui ajouter un onglet
personnalisé.
Barres d'outils
Permettent d'accéder instantanément à la plupart des commandes les plus courantes de l'environnement de programmation.
Il vous suffit de cliquer une fois sur un bouton de la barre d'outils pour exécuter l'action qu'il représente. Par défaut, la barre
d'outils Standard apparaît lorsque vous démarrez Visual Basic. Il existe d'autres barres d'outils pour la modification, la
création de feuilles et le débogage. Elles peuvent être activées ou désactivées à l'aide de la commande Barres d'outils du
menu Affichage.
Les barres d'outils peuvent être ancrées sous la barre de menus ou « flotter » si vous cliquez sur la barre verticale située sur
le bord gauche et que vous la détachez de la barre de menus.
Boîte à outils
Fournit un ensemble d'outils nécessaires au moment de la création pour disposer les contrôles sur une feuille. Outre la
disposition par défaut de la boîte à outils, vous pouvez créer vos propres dispositions personnalisées en cliquant sur la
commande Ajouter un onglet du menu contextuel et en ajoutant ensuite les contrôles voulus à l'onglet ainsi créé.
Pour plus d'informations sur des contrôles déterminés, reportez-vous au chapitre 3, « Feuilles, contrôles et menus » et au
chapitre 7, « Utilisation des contrôles standard de Visual Basic ». Pour plus d'informations sur l'ajout de contrôles à la Boîte
à outils, reportez-vous à la section « Ajout de contrôles dans un projet » du chapitre 4, « Gestion de projets .
Ahmed ABOUABDELLAH 9
Fenêtre Explorateur de projets
Énumère les feuilles et les modules contenus dans votre projet en cours. Un projet est un ensemble de fichiers à partir
desquels vous créez une application.
Pour plus d'informations sur les projets, reportez-vous au chapitre 4, « Gestion de projets ».
Fenêtre Propriétés
Énumère les paramètres des propriétés de la feuille ou du contrôle sélectionné. Une propriété définit une caractéristique
d'un objet, notamment sa taille, sa légende ou sa couleur.
Pour plus d'informations sur les propriétés, reportez-vous à la section « Propriétés, méthodes et événements » du chapitre 3,
« Feuilles, contrôles et menus ».
Explorateur d'objets
Énumère les objets disponibles pour votre projet et vous permet de naviguer rapidement dans votre code. Vous pouvez
recourir à l'Explorateur d'objets pour examiner les objets dans Visual Basic et d'autres applications, connaître les méthodes
et propriétés disponibles pour ces objets, ainsi que pour coller des procédures de code dans votre application.
Pour plus d'informations sur l'utilisation de l'Explorateur d'objets pour l'examen des procédures, reportez-vous à la section
« Recherche d'informations sur les objets » du chapitre 9, « Programmation à l'aide d'objets ». Pour plus de détails sur
l'enrichissement de l'environnement de programmation Visual Basic à l'aide de compléments, reportez-vous à la section
« Utilisation des Assistants et des compléments » du chapitre 4, « Gestion de projets ».
Fenêtre Code
Fait office d'éditeur pour la saisie du code de l'application. Une fenêtre Code distincte est créée pour chaque feuille ou
module de code de votre application.
Pour plus d'informations sur la saisie du code et l'utilisation de l'Éditeur de code, reportez-vous au chapitre 5, « Éléments
fondamentaux de programmation ».
Ahmed ABOUABDELLAH 10
Fenêtres Exécution, Variables locales et Espions
Ces fenêtres supplémentaires sont destinées au débogage de votre application. Elles ne sont disponibles que lorsque vous
exécutez celle-ci dans l'environnement de développement intégré.
Pour plus d'informations sur le débogage et l'utilisation des fenêtres de débogage, reportez-vous chapitre 13, « Débogage
du code et gestion d'erreurs ».
Note Vous pouvez aussi ajouter des fonctionnalités supplémentaires à votre interface Visual Basic grâce à un programme appelé
complément. Les compléments, disponibles auprès de Microsoft et de développeurs tiers, vous permettent de bénéficier de fonctionnalités
supplémentaires, notamment le contrôle de code source, grâce auquel vous pouvez prendre en charge des projets de développement de
groupe.
Options de l'environnement
Visual Basic se caractérise par sa très grande souplesse qui vous permet de configurer l'environnement de travail exactement
comme vous le souhaitez. Vous avez le choix entre une interface document simple ou multidocument, et vous pouvez ajuster la
taille ainsi que le positionnement des différents éléments de l'environnement de développement intégré. Cette disposition est
préservée entre les sessions de Visual Basic.
Interface SDI ou MDI
L'environnement de développement intégré Visual Basic peut se présenter de deux manières différentes : d'une part
l'interface document simple (SDI, Single Document Interface) et d'autre part l'interface multidocument (MDI, Multiple
Document Interface). Si vous optez pour l'interface SDI, toutes les fenêtres de l'environnement de développement intégré
peuvent être déplacées en n'importe quel point de l'écran. Aussi longtemps que Visual Basic demeure l'application en cours,
ces fenêtres resteront affichées au premier plan, par-dessus les autres applications. En mode MDI, toutes les fenêtres de
l'environnement de développement intégré sont renfermées au sein d'une même fenêtre parent redimensionnable.
Ahmed ABOUABDELLAH 11
Votre première application Visual Basic
Créer une application dans Visual Basic est simple. Pour mieux vous en rendre compte, essayez les applications Bonjour,
Visual Basic et Firstapp ci-dessous.
Pour mieux comprendre ces différentes étapes, les procédures suivantes vous indiquent comment créer une application
simple composée d'une zone de texte et d'un bouton de commande. Lorsque vous cliquez sur celui-ci, le message « Bonjour
à tous ! » apparaît dans la zone de texte.
Création de l'interface
Les feuilles constituent l'élément essentiel intervenant dans la création de l'interface d'une application. Elles vous
permettent d'ajouter des fenêtres et des boîtes de dialogue, mais vous pouvez également les utiliser comme conteneurs
d'éléments qui ne sont pas visibles dans l'interface de l'application. Par exemple, votre application pourrait contenir une
feuille qui ferait office de conteneur pour des graphiques que vous envisagez d'afficher dans d'autres feuilles.
La première étape de l'élaboration d'une application Visual Basic consiste à créer les feuilles sur lesquelles sera fondée
l'interface de l'application. Vous dessinez ensuite sur les feuilles les objets qui composeront l'interface. Pour cette première
application, vous utiliserez deux contrôles de la Boîte à outils.
Bouton Contrôle
Zone de texte (TextBox)
Ahmed ABOUABDELLAH 12
Figure 2.3 Dessin d'un contrôle TextBox à l'aide de la Boîte à outils
3 Positionnez le curseur en forme de croix à l'endroit où vous souhaitez placer le coin supérieur gauche du contrôle.
4 Faites glisser le curseur en forme de croix jusqu'à ce que le contrôle atteigne la taille voulue. ( Faire glisser signifie que
vous maintenez le bouton gauche de la souris enfoncé pendant que vous déplacez un objet à l'aide de la souris.)
5 Relâchez le bouton de la souris.
Le contrôle apparaît sur la feuille.
Il est également possible d'ajouter facilement un contrôle à une feuille en double-cliquant sur le bouton de ce contrôle au
sein de la Boîte à outils. Vous créez ainsi un contrôle qui possède une taille par défaut et qui se situe au centre de la feuille.
Il vous suffit ensuite de le déplacer jusqu'à l'endroit voulu.
Ahmed ABOUABDELLAH 13
Pour déplacer un contrôle
Faites glisser le contrôle jusqu'à son nouvel emplacement sur la feuille à l'aide dela souris.
– ou –
Utilisez la fenêtre Propriétés pour modifier les propriétés Top et Left.
Lorsqu'un contrôle est sélectionné, vous pouvez utiliser la touche CTRL avec les touches de direction pour déplacer le
contrôle d'une unité de grille à la fois. Si la grille est désactivée, le contrôle est déplacé d'un pixel à la fois.
Vous verrouillez ainsi tous les contrôles de la feuille sur leur position en cours afin de ne pas risquer de les déplacer par
inadvertance une fois qu'ils occupent l'emplacement désiré. Seuls les contrôles de la feuille sélectionnée sont verrouillés.
Ceux des autres feuilles ne le sont pas. Comme il s'agit d'une commande à bascule, elle vous permet également de
déverrouiller les positions des contrôles.
Pour ajuster la position des contrôles verrouillés
Vous pouvez déplacer légèrement le contrôle actif en maintenant la touche CTRL enfoncée et en appuyant sur la touche de
direction appropriée.
– ou –
Vous pouvez modifier les propriétés Top et Left du contrôle dans la fenêtre Propriétés.
Vous disposez maintenant de l'interface nécessaire à l'application « Bonjour à tous ! », comme illustré à la figure 2.4.
Ahmed ABOUABDELLAH 14
Figure 2.5 La fenêtre Propriétés
Pour l'exemple d'application « Bonjour à tous ! », vous devez modifier les valeurs de trois propriétés et utiliser les valeurs
par défaut de toutes les autres.
Objet Propriété Valeur
Feuille Caption Bonjour à tous !
Zone de texte Text (Vide)
Bouton de commande Caption OK
Écriture du code
C'est dans la fenêtre Code que vous écrivez le code Visual Basic de votre application. Le code est composé d'instructions du
langage, de constantes et de déclarations. La fenêtre Code vous permet d'afficher et de modifier rapidement n'importe quelle
partie du code de votre application.
Ahmed ABOUABDELLAH 15
Pour ouvrir la fenêtre Code
Double-cliquez sur la feuille ou le contrôle pour lequel vous souhaitez écrire du code.
– ou –
Dans la fenêtre Explorateur de projets, sélectionnez le nom d'une feuille ou d'un module, puis cliquez sur le bouton
Code.
La figure 2.6 illustre la fenêtre Code telle qu'elle apparaît lorsque vous double-cliquez sur le contrôle CommandButton,
ainsi que les événements de cette commande.
Vous pouvez décider d'afficher individuellement ou simultanément les procédures dans la fenêtre Code.
Ahmed ABOUABDELLAH 16
Création de procédures d'événement
Le code de votre application Visual Basic est divisé en blocs de petite taille appelés procédures. Les procédures
d'événement, notamment celles que vous avez créées ici, contiennent du code qui est exécuté au moment où survient un
événement (notamment lorsqu'un utilisateur clique sur un bouton). Une procédure d'événement d'un contrôle combine le
nom effectif du contrôle (spécifié dans la propriété Name), un trait de soulignement (_) et le nom de l'événement. Par
exemple, si vous souhaitez qu'une procédure d'événement soit invoquée lorsque l'utilisateur clique sur un bouton de
commande nommé Command1, utilisez la procédure Command1_Click.
Exécution de l'application
Pour exécuter l'application, cliquez sur Exécuter dans le menu Exécution, ou cliquez sur le bouton Exécuter de la barre
d'outils, ou encore appuyez sur F5. Cliquez sur le bouton de commande que vous avez créé sur la feuille et vous verrez
apparaître « Bonjour à tous ! » dans la zone de texte.
Ahmed ABOUABDELLAH 17
Pour ajouter des éléments au contrôle ListBox, vous utilisez la méthode AddItem. (Une méthode est une fonction
Visual Basic qui agit sur un objet déterminé, dans ce cas précis, un objet ListBox.) La syntaxe employée pour spécifier une
méthode ([Link]) est semblable à la syntaxe de définition d'une propriété ([Link]). La méthode AddItem
vous permet d'ajouter, de manière dynamique, des éléments à la zone de liste, pendant l'exécution de l'application. En
revanche, la méthode Clear permet de supprimer tous les éléments de la zone de liste.
Pour plus d'informations sur les méthodes, reportez-vous à la section « Propriétés, méthodes et événements » du chapitre 3,
« Feuilles, contrôles et menus ».
Contrôle DBGrid
Contrôle ListBox
Contrôle CommandButton
Utilisez la boîte à outils pour dessiner un contrôle Data, un contrôle DBGrid, un contrôle ListBox et deux contrôles
CommandButton sur la feuille, comme illustré à la figure 2.7.
Ahmed ABOUABDELLAH 18
Figure 2.7 Feuille pour l'exemple d'application Firstapp
La propriété DatabaseName du contrôle Data doit inclure le chemin réel de la base de données. Par défaut, la base de données
[Link] est installée dans le même dossier que Visual Basic. Lorsque vous sélectionnez la propriété DatabaseName dans la
fenêtre Propriétés, vous pouvez cliquer sur le bouton situé à droite de la propriété afin d'afficher la boîte de dialogue Nom de
la base de données à l'aide de laquelle vous rechercherez le fichier. Une fois la propriété DatabaseName définie, la propriété
RecordSource de la fenêtre Propriétés contient la liste des tables ou des jeux d'enregistrements de la base de données
sélectionnée. En affectant la valeur Data1 à la propriété DataSource du contrôle DBGrid, vous liez automatiquement la grille
au contrôle Data.
Ahmed ABOUABDELLAH 19
' Met fin à l'application.
End
End Sub
Dans la procédure ci-dessus, la première instruction invoque l'événement Unload de la feuille. Si vous deviez exécuter une
fonction au moment de la fermeture, notamment l'enregistrement d'un fichier, vous pourriez placer ce code dans la
procédure d'événement Unload de la feuille. La deuxième instruction appelle la fonction End, qui met fin à l'application.
Ajoutez le code suivant à la procédure d'événement Data1_Reposition de façon à mettre à jour la légende chaque fois qu'un
enregistrement est sélectionné :
Private Sub Data1_Reposition ()
[Link] = [Link]("Title")
End Sub
Dans l'instruction ci-dessus, vous affectez la valeur de droite (le contenu du champ Title de l'objet Recordset du contrôle
Data) à la propriété de gauche (la propriété Caption de l'objet contrôle Data).
Ajoutez le code suivant à la procédure d'événement DBGrid_DblClick pour ajouter un élément à la zone de liste lorsque
l'utilisateur double-clique sur une ligne sélectionnée :
Private Sub DBGrid1_DblClick ()
[Link] [Link]("Title")
End Sub
Dans l'instruction ci-dessus, vous appelez la méthode AddItem de la zone de liste (List1). Le texte à ajouter à la zone de
liste est contenu dans l'argument de la méthode, à savoir la valeur du champ Title dans le jeu d'enregistrements du contrôle
Data. Le passage d'une valeur à un argument équivaut à affecter une valeur à une propriété. Contrairement à l'instruction
d'affectation, le signe égal n'est pas obligatoire.
Ahmed ABOUABDELLAH 20
Chapitre
3
La première étape de création d'une application à l'aide de Visual Basic consiste à créer l'interface, c'est-à-dire la partie
visuelle de l'application avec laquelle l'utilisateur dialogue. Les feuilles et les contrôles sont les blocs fonctionnels de base
qui ermettent de créer l'interface ; ce sont les objets que vous utilisez pour construire votre application.
Les feuilles sont des objets qui possèdent des propriétés définissant leur apparence, des méthodes définissant leur
comportement et des événements définissant l'interaction avec l'utilisateur. En définissant les propriétés d'une feuille et en
écrivant le code Visual Basic pour répondre à ses événements, vous personnalisez l'objet en fonction des exigences de votre
application.
Les contrôles sont des objets qui sont inclus dans des objets feuille. Chaque type de contrôle possède son propre jeu de
propriétés, de méthodes et d'événements qui permettent de l'adapter à un usage particulier. Parmi les contrôles que vous
pouvez utiliser dans vos applications, certains conviennent mieux pour saisir ou afficher du texte. D'autres permettent
d'accéder à d'autres applications et de traiter les données comme si l'application à distance faisait partie intégrante de votre
code.
Ce chapitre présente les principes de base des feuilles et des contrôles avec leurs propriétés, méthodes et événements
respectifs. Il décrit un grand nombre de contrôles standard ainsi que les éléments propres aux feuilles, tels que les menus et
les boîtes de dialogue.
Sommaire
Propriétés, méthodes et événements
Création d'une feuille
Exécution d'une action par un clic sur un bouton
Contrôles d'affichage et de saisie de texte
Contrôles offrant des choix à l'utilisateur
Contrôles d'affichage d'images et de graphiques
Autres contrôles
Principe du focus
Définition de l'ordre des tabulations
Éléments de base des menus
Demande d'intervention de l'utilisateur par des boîtes de dialogue
Propriétés, méthodes et événements
Les feuilles et les contrôles de Visual Basic sont des objets qui possèdent leurs propres propriétés, méthodes et événements.
Les propriétés sont comparables à des attributs d'objet, les méthodes à des actions, et les événements à des réponses.
Un objet ordinaire, le ballon gonflé à l'hélium d'un enfant par exemple, possède aussi des propriétés, des méthodes et des
événements. Les propriétés d'un ballon incluent des attributs visibles tels que sa hauteur, son diamètre et sa couleur. D'autres
propriétés décrivent son état (gonflé ou dégonflé) ou des attributs qui ne sont pas visibles, comme son âge. Par définition,
tous les ballons ont ces propriétés, mais les valeurs de celles-ci peuvent varier d'un ballon à l'autre.
Un ballon peut aussi exécuter des méthodes ou actions spécifiques. Par exemple, il peut inclure une méthode de gonflement
(action de le remplir à l'hélium), une méthode de dégonflement (action d'évacuer son contenu) et une méthode d'élévation
(si vous le lâchez). Tous les ballons peuvent être pourvus de ces méthodes.
Ahmed ABOUABDELLAH 21
Enfin, les ballons ont des réponses prédéfinies par rapport à des événements externes. Par exemple, un ballon peut réagir à
l'événement crever en se dégonflant, ou à l'événement lâcher en s'élevant dans l'air.
Figure 3.1 Les objets incluent des propriétés, répondent à des événements et exécutent des méthodes
Si vous deviez programmer un ballon, la syntaxe du code Visual Basic pourrait être la suivante. Définition des propriétés du
ballon :
[Link] = Red
[Link] = 10
[Link] = True
Notez la syntaxe du code : l'objet (Ballon) suivi de la propriété (.Color) et de l'attribution de la valeur (Red). Vous pourriez
changer la couleur du ballon en répétant cette instruction et en attribuant une autre valeur. Vous pouvez aussi définir les
propriétés dans la fenêtre Propriétés pendant que vous créez votre application.
Les méthodes du ballon pourraient être appelées ainsi :
[Link]
[Link]
[Link] 5
Cette syntaxe est similaire à celle des propriétés : l'objet (nom) est suivi de la méthode (verbe). La troisième ligne inclut un
autre élément, l'argument, qui indique la hauteur à laquelle s'élève le ballon. Certaines méthodes peuvent comprendre un ou
plusieurs arguments qui décrivent l'action à exécuter.
Le ballon pourrait répondre à un événement de la façon suivante :
Sub Ballon_Puncture()
[Link]
[Link] "Pan"
[Link] = False
[Link] = 1
End Sub
Dans cet exemple, le code décrit le comportement du ballon chaque fois que l'événement Puncture (crever) se produit :
appel de la méthode Deflate (dégonfler) puis de la méthode MakeNoise (bruit) avec l'argument « Pan » (type du bruit).
Comme le ballon est dégonflé, la valeur de la propriété Inflated (gonflé) est False, et la propriété Diameter prend une
nouvelle valeur.
Si vous ne pouvez pas réellement programmer un ballon, vous pouvez, en revanche, programmer une feuille ou un contrôle
de Visual Basic. En tant que programmeur, vous pouvez décider des propriétés à modifier, des méthodes à appeler ou des
réponses à fournir aux événements, afin de définir l'aspect et le comportement d'un objet.
Création d'une feuille
Les objets feuille constituent les blocs fonctionnels de base d'une application Visual Basic, c'est-à-dire les fenêtres qui
permettent à l'utilisateur de dialoguer avec l'application pendant qu'il l'exécute. Les feuilles ont leurs propres propriétés,
événements et méthodes à l'aide desquels vous pouvez contrôler leur aspect et leur comportement.
Ahmed ABOUABDELLAH 22
Figure 3.2 Les feuilles et les contrôles ont leurs propres propriétés, événements et méthodes
La première étape de création d'une feuille consiste à définir ses propriétés. Vous pouvez les définir dans la fenêtre
Propriétés lors de la création d'une feuille, ou lors de l'exécution de l'application en écrivant du code.
Note Vous utilisez des feuilles et des contrôles, définissez leurs propriétés et écrivez le code approprié à leurs événements, et ce à un
moment quelconque de la création d'une application dans l'environnement Visual Basic. L'exécution est le moment au cours duquel vous
exécutez l'application et dialoguez avec elle, comme le fait l'utilisateur.
Ahmed ABOUABDELLAH 23
En tant qu'objets, les feuilles peuvent exécuter des méthodes et répondre à des événements.
L'événement Resize se déclenche chaque fois qu'une feuille est redimensionnée par l'utilisateur ou par le code. Vous pouvez
ainsi exécuter des actions telles que déplacer ou redimensionner les contrôles de la feuille, lorsque sa taille a été modifiée.
L'événement Activate se produit chaque fois qu'une feuille devient active et l'événement Deactivate se produit lorsqu'une
autre application ou une autre feuille deviennent actives. Ces événements s'avèrent particulièrement utiles pour initialiser ou
mettre fin au comportement d'une feuille. Par exemple, vous pouvez écrire du code dans l'événement Activate pour mettre
en surbrillance le texte d'un contrôle TextBox, et enregistrer dans l'événement Deactivate les modifications apportées à un
fichier ou à une base de données.
Pour rendre une feuille visible, vous pouvez appeler la méthode Show :
[Link]
L'appel de la méthode Show produit le même effet qu'attribuer la valeur True à la propriété Visible d'une feuille.
Bon nombre de méthodes de feuille impliquent du texte ou des graphiques. Les méthodes Print, Line, Circle et Refresh
permettent d'imprimer ou de dessiner directement dans la feuille. Pour plus d'informations sur ces méthodes, reportez-vous
au chapitre 12, « Texte et graphiques ».
Pour plus d'informations sur les feuilles, reportez-vous à la section « Informations complémentaires sur les feuilles » du
chapitre 6, « Création d'une interface utilisateur ».
Toutes ces actions provoquent l'appel de la procédure d'événement Click par Visual Basic.
Ahmed ABOUABDELLAH 24
Application Boutons de test
Utilisez la propriété Caption pour afficher le texte du bouton indiquant à l'utilisateur la fonction de ce bouton. Comme le
montre la figure 3.4, l'exemple Boutons de test extrait de l'exemple d'application Controls contient un bouton dont la
propriété Caption a pour valeur « Change Signal » (une version de travail de cet exemple est disponible dans [Link] de
l'exemple d'application [Link]).
Notez que la lettre « S » (signalée par un trait de soulignement) est la touche d'accès rapide de ce bouton. Si vous insérez
une perluète (&) dans le texte de la propriété Caption, le caractère venant après ce symbole devient la touche d'accès rapide
du bouton (par exemple, Change &Signal).
Lorsque l'utilisateur clique sur le bouton de commande, le code inclus dans la procédure d'événement Click du bouton de
commande est exécuté. Dans cet exemple, une icône de signalisation différente s'affiche chaque fois que l'utilisateur clique
sur le bouton.
Pour plus d'informations sur les autres propriétés du contrôle CommandButton, reportez-vous au chapitre 7, « Utilisation
des contrôles standard de Visual Basic ».
Ahmed ABOUABDELLAH 25
semblable à un contrôle TextBox. Vous pouvez aussi modifier son apparence à l'aide des propriétés BackColor, BackStyle,
ForeColor et Font.
La propriété WordWrap permet de modifier le contrôle Label verticalement pour l'adapter à son contenu, sans modifier sa
largeur (figure 3.6). Une version de travail de cet exemple est disponible dans [Link] de l'exemple d'application
[Link].
Ahmed ABOUABDELLAH 26
Note Si vous exécutez l'exemple AutoSize de l'application [Link], vous constaterez que les deux cases à cocher doivent être
sélectionnées pour que l'exemple WordWrap puisse fonctionner. En effet, AutoSize doit avoir la valeur True pour que la propriété
WordWrap du contrôle Label soit active. La largeur de ce contrôle n'est agrandie que si la largeur d'un mot dépasse la largeur en cours du
contrôle.
Pour plus d'informations sur les propriétés du contrôle Label, reportez-vous au chapitre 7, « Utilisation des contrôles
standard de Visual Basic ».
Si la valeur de MultiLine est True, un contrôle TextBox peut accepter ou afficher plusieurs lignes de texte au moment de
l'exécution. Un contrôle TextBox multiligne gère automatiquement le retour à la ligne tant qu'il n'existe pas de barre de
défilement horizontale. Par défaut, la valeur de la propriété ScrollBars est 0-Aucune. Le retour automatique à la ligne évite
à l'utilisateur d'insérer un saut de ligne à la fin de chaque ligne. Lorsqu'une ligne de texte dépasse l'espace d'affichage
disponible, le contrôle TextBox renvoie le texte à la ligne suivante.
Vous ne pouvez pas entrer de sauts de ligne dans la fenêtre Propriétés au moment de la création. Dans une procédure, créez
un saut de ligne en insérant un retour chariot suivi d'un saut de ligne (caractères ANSI 13 et 10). Vous pouvez aussi utiliser
la constante vbCrLf pour insérer cette combinaison retour chariot/saut de ligne. Par exemple, le procédure d'événement
suivante place deux lignes de texte dans un contrôle TextBox multiligne (Text1), lorsque la feuille est chargée en mémoire :
Sub Form_Load ()
[Link] = "Il y a deux lignes" & vbCrLf _
& "dans cette zone de texte"
End Sub
Ahmed ABOUABDELLAH 27
d'insertion sera placé après le dernier caractère, comme l'illustre la figure 3.7. Une version de travail de cet exemple est
disponible dans [Link] de l'exemple d'application [Link].
La propriété SelLength est une valeur numérique qui définit la largeur du point d'insertion. Si la valeur de cette propriété est
supérieure à 0, le nombre de caractères égal à cette valeur doit être sélectionné et mis en surbrillance, à partir de la position
en cours du point d'insertion. La figure 3.8 illustre le comportement de la sélection.
Si l'utilisateur commence à saisir du texte alors qu'un bloc de texte est sélectionné, celui-ci est remplacé par le nouveau
texte. Dans certains cas, vous pouvez décider de remplacer une sélection de texte par un nouveau texte à l'aide de la
commande Coller. La propriété SelText est une chaîne de texte que vous pouvez attribuer au moment de l'exécution pour
remplacer la sélection en cours. Si aucun texte n'est sélectionné, SelText insère son texte à la position en cours du point
d'insertion.
Pour plus d'informations sur les propriétés du contrôle TextBox, reportez-vous au chapitre 7, « Utilisation des contrôles
standard de Visual Basic ».
Ahmed ABOUABDELLAH 28
Contrôles offrant des choix à l'utilisateur
La plupart des applications proposent des choix à l'utilisateur, qui vont de la simple option oui/non à la sélection d'une liste
contenant des centaines de possibilités. Visual Basic inclut plusieurs contrôles standard qui s'avèrent très utiles pour
présenter des choix. Le tableau suivant récapitule ces contrôles et leurs utilisations respectives.
Pour fournir cette fonction Utilisez ce contrôle
Jeu de choix restreint à partir duquel CheckBox
l'utilisateur peut choisir une ou
plusieurs options.
Jeu de choix restreint à partir duquel OptionButton (utilisez des contrôles Frame si
l'utilisateur ne peut sélectionner qu'une d'autres groupes sont nécessaires)
seule option.
Liste de choix déroulante dans laquelle ListBox
l'utilisateur effectue sa sélection.
Liste de choix déroulante avec une zone ComboBox
de texte modifiable. L'utilisateur peut
effectuer une sélection dans la liste ou
taper un choix dans la zone d'édition.
Ahmed ABOUABDELLAH 29
Sélection d'options individuelles à l'aide des contrôles CheckBox
Un contrôle case à cocher (CheckBox) indique si une condition particulière est active ou non. Utilisez ces contrôles dans
une application pour proposer à l'utilisateur des options vrai/faux ou oui/non. Comme ils fonctionnent indépendamment les
uns des autres, l'utilisateur peut en sélectionner plusieurs en même temps. Par exemple, la figure 3.9 montre qu'il est
possible de cocher à la fois les cases Gras et Italique.
Le tableau suivant donne la liste des propriétés et de leurs valeurs pour les objets de l'application.
Objet Propriété Valeur
Form Name frmCheck
Caption Exemple case à cocher
TextBox Name txtDisplay
Text Exemple de texte
Premier CheckBox Name chkBold
Caption &Gras
Second CheckBox Name chkItalic
Caption &Italique
CommandButton Name cmdClose
Caption &Fermer
Ahmed ABOUABDELLAH 30
Lorsque vous cochez la case Gras ou Italique, la propriété Value du contrôle CheckBox prend la valeur 1 ; si la case n'est
pas cochée, la propriété prend la valeur 0. Comme la valeur par défaut est 0, la case n'est pas cochée lorsqu'elle apparaît la
première fois, sauf si vous modifiez la propriété Value. Vous pouvez utiliser les constantes vbChecked et vbUnchecked pour
représenter les valeurs 1 et 0.
Ahmed ABOUABDELLAH 31
Figure 3.12 Groupes de contrôles OptionButton
Lorsque vous dessinez des contrôles OptionButton dans un contrôle Frame, l'utilisateur ne peut sélectionner qu'un contrôle
OptionButton du groupe.
Si vous dessinez d'abord le contrôle Frame puis chaque contrôle à l'intérieur du contrôle Frame, vous pouvez déplacer
ensemble le contrôle Frame et les contrôles. Si vous tentez d'inclure des contrôles existants dans un contrôle Frame, vous ne
pourrez pas déplacer les contrôles et le contrôle Frame en même temps.
Note Si vous voulez regrouper des contrôles existants dans un contrôle Frame, vous devez tous les sélectionner, puis les couper et les
coller dans un contrôle Frame ou un contrôle PictureBox.
Conteneurs de contrôles
Alors que les contrôles ne sont pas liés aux objets, une certaine relation parent/enfant existe entre les feuilles et les
contrôles. La figure 3.12 illustre la façon dont les contrôles OptionButton peuvent être inclus dans une feuille ou un contrôle
Frame.
Pour comprendre le concept des conteneurs, partez du principe que tous les contrôles sont les enfants d'une feuille dans
laquelle ils sont dessinés. En fait, la plupart des contrôles gèrent la propriété Parent en lecture seule, qui renvoie à la feuille
dans laquelle un contrôle est inclus. La relation enfant d'un contrôle influe sur le placement de celui-ci dans la feuille
parent. Les propriétés Left et Top d'un contrôle sont relatives à la feuille parent, et les contrôles ne peuvent être déplacés en
dehors des limites du parent. Si vous déplacez un conteneur, vous déplacez également les contrôles ; la position de ces
contrôles, relative aux propriétés Left et Top du conteneur, ne change pas car ils se déplacent avec le conteneur.
Ahmed ABOUABDELLAH 32
Attribuer la valeur True à la propriété Value dans le code :
[Link] = True
Utiliser une touche de raccourci indiquée dans le libellé d'une étiquette.
Pour définir un bouton par défaut dans un groupe de boutons d'option, attribuez la valeur True à sa propriété Value au
moment de la création. Il restera sélectionné jusqu'à ce qu'un utilisateur sélectionne un autre bouton ou que le code soit
modifié.
Pour désactiver un bouton d'option, attribuez la valeur False à la propriété Enabled. Lors de l'exécution du programme, ce
bouton apparaîtra en grisé pour indiquer qu'il n'est pas disponible.
Le tableau suivant donne la liste des propriétés et de leurs valeurs pour les objets de l'application.
Objet Propriété Valeur
Label Name lblDisplay
Caption (Vide)
CommandButton Name cmdClose
Caption &Fermer
Premier OptionButton Name opt486
Caption &486
Deuxième OptionButton Name opt586
Caption &Pentium
Value True
Troisième OptionButton Name opt686
Caption &Pentium Pro
Frame Name fraSystem
Caption &Système d'exploitation
Quatrième OptionButton Name optWin95
Caption Windows 95
Ahmed ABOUABDELLAH 33
Cinquième OptionButton Name optWinNT
Caption Windows NT
Value True
La clé de cette approche réside dans l'utilisation des deux variables au niveau feuille, strComputer et strSystem. Elles
contiennent différentes valeurs de chaîne qui dépendent des derniers boutons d'option sélectionnés.
Chaque fois qu'un nouveau bouton d'option est sélectionné, le code de son événement Click met à jour la variable
appropriée :
Private Sub opt586_Click()
strComputer = "Pentium"
Call DisplayCaption
End Sub
Il appelle ensuite une sous-procédure, DisplayCaption, qui concatène les deux variables et met à jour la propriété Caption
du contrôle Label :
Sub DisplayCaption()
[Link] = "Vous avez sélectionné a " & _
strComputer & " en cours d'exécution " & strSystem
End Sub
Une sous-procédure suffit car la procédure de mise à jour de la propriété Caption est pratiquement identique pour les cinq
boutons d'option ; seule la valeur des variables change d'une occurrence à l'autre. Vous n'avez donc pas à répéter le même
code dans chaque événement Click.
Pour plus d'informations sur les variables et les sous-procédures, reportez-vous au chapitre 5, « Éléments fondamentaux de
programmation ».
Un contrôle ComboBox combine les caractéristiques d'un contrôle TextBox et d'un contrôle ListBox. Il permet à l'utilisateur
d'effectuer une sélection en tapant du texte dans la zone ou en sélectionnant un élément dans la liste. La figure 3.15
représente un contrôle ComboBox.
Ahmed ABOUABDELLAH 34
Figure 3.15 Contrôle ComboBox
Contrairement à d'autres contrôles contenant une seule valeur, comme la propriété Caption d'un contrôle Label ou la
propriété Text d'un contrôle TextBox, les contrôles ListBox et ComboBox contiennent plusieurs valeurs ou un groupe de
valeurs. Leurs méthodes intégrées permettent d'ajouter, de supprimer ou d'extraire des valeurs au moment de l'exécution.
Pour ajouter plusieurs éléments à un contrôle ListBox nommé List1, la syntaxe du code est la suivante :
[Link] "Paris"
[Link] "New York"
[Link] "San Francisco"
Les contrôles ListBox et ComboBox s'avèrent particulièrement efficaces pour proposer à l'utilisateur un grand nombre de
choix dans un espace limité.
Pour plus d'informations sur les contrôles ListBox et ComboBox, reportez-vous au chapitre 7, « Utilisation des contrôles
standard de Visual Basic ».
Ahmed ABOUABDELLAH 35
L'affichage d'un élément graphique simple Shape ou Line
Pour afficher ou remplacer une image au moment de l'exécution, vous pouvez utiliser la fonction LoadPicture qui permet de
définir la propriété Picture. Lorsque vous indiquez le nom (et l'éventuel chemin d'accès) de l'image, la fonction LoadPicture
gère les détails du chargement et de l'affichage :
[Link] = LoadPicture("[Link]")
Le contrôle PictureBox comprend une propriété AutoSize dont la valeur True redimensionne automatiquement la zone
d'image pour l'adapter à son contenu. Soyez particulièrement prudent lors de la création de votre feuille si vous prévoyez
d'utiliser un contrôle PictureBox dont la propriété AutoSize est activée. En effet, l'image sera redimensionnée sans tenir
compte des autres contrôles de la feuille, et vous risquez d'obtenir des résultats inattendus, tels que le recouvrement des
autres contrôles par l'image. Il est donc conseillé de tester le résultat en chargeant chaque image au moment de la création.
Ahmed ABOUABDELLAH 36
Il est possible de créer une animation à l'aide de la méthode PaintPicture en déplaçant les images à l'intérieur du contrôle
Image et en passant rapidement d'une image à l'autre.
Pour plus d'informations sur le contrôle PictureBox, reportez-vous au chapitre 7, « Utilisation des contrôles standard de
Visual Basic ».
Pour créer une bordure autour du contrôle Image, attribuez à la propriété BorderStyle la valeur 1-Simple fixe.
Note Contrairement aux boutons de commande, les contrôles Image ne s'affichent pas comme s'ils avaient été enfoncés lorsque vous
cliquez dessus. Autrement dit, sauf si vous modifiez l'image bitmap dans l'événement MouseDown, aucun indice visuel ne signale à
l'utilisateur que le « bouton » a été enfoncé.
Ahmed ABOUABDELLAH 37
Pour plus d'informations sur l'affichage d'une image graphique dans un contrôle Image, reportez-vous au chapitre 7,
« Utilisation des contrôles standard de Visual Basic ».
Application Images
La feuille illustrée à la figure 3.18 utilise quatre contrôles Image, un contrôle Shape, un contrôle PictureBox et un contrôle
CommandButton. Lorsque l'utilisateur sélectionne un symbole de carte à jouer, le contrôle Shape met le symbole en
surbrillance et une description s'affiche dans la zone d'image. Une version de travail de cet exemple est disponible dans
[Link] de l'exemple d'application [Link].
Le tableau suivant donne la liste des propriétés et de leurs valeurs pour les objets de l'application.
Objet Propriété Valeurs
PictureBox Name picStatus
Align Bottom
Premier contrôle Image Name imgClub
Picture [Link]
Deuxième contrôle Image Name imgDiamond
Picture [Link]
Troisième contrôle Image Name imgHeart
Picture [Link]
Quatrième contrôle Image Name imgSpade
Caption [Link]
Ahmed ABOUABDELLAH 38
Contrôle Shape Name shpCard
Shape 4 - Rectangle arrondi
BorderWidth 2
Height 735
Width 495
CommandButton Name cmdClose
Caption &Fermer
Autres contrôles
La boîte à outils de Visual Basic contient plusieurs autres contrôles standard. Certains permettent de travailler avec de
grandes quantités de données incluses dans une base de données externe. D'autres peuvent être utilisés pour accéder au
système de fichiers Windows. D'autres encore défient toute possibilité de classement mais ils sont néanmoins très utiles.
Dans une application Visual Basic, vous pouvez aussi utiliser les contrôles ActiveX (auparavant appelés contrôles OLE ou
contrôles personnalisés) de la même façon que les contrôles standard. Les Éditions Professionnelle et Entreprise de
Visual Basic contiennent un grand nombre de contrôles ActiveX et vous offrent la possibilité de créer vos propres contrôles.
D'autres contrôles ActiveX destinés à de multiples usages sont disponibles auprès de nombreux fournisseurs.
Pour plus d'informations sur l'utilisation des contrôles ActiveX, reportez-vous au chapitre 4, « Gestion de projets ».
Ahmed ABOUABDELLAH 39
Le contrôle Data permet de se connecter à une base de données. Il est semblable à un pipeline reliant la base de données
aux autres contrôles de votre feuille. Ses propriétés, méthodes et événements vous offrent la possibilité de consulter et de
traiter des données externes à partir de votre propre application.
Le contrôle DBList est similaire au contrôle ListBox. Lorsqu'il est associé à un contrôle Data, il peut recevoir
automatiquement une liste de données provenant d'un champ d'une base de données externe.
Le contrôle DBCombo est semblable à une combinaison du contrôle DBList et d'un contrôle TextBox. Le texte
sélectionné dans la partie de la zone de texte peut être modifié, et les modifications apparaissent dans la base de données
sous-jacente.
Le contrôle DBGrid affiche les données dans une grille ou une table. Lorsqu'il est associé à un contrôle de données, il
affiche des données entièrement modifiables provenant de multiples champs d'une base de données externe.
Le contrôle MSFlexGrid est un contrôle unique qui permet d'afficher de nombreuses vues de données. Il peut être
comparé à la combinaison d'une grille et d'une arborescence ou à un contrôle plan. Lors de l'exécution, l'utilisateur peut
réorganiser les colonnes et les lignes pour présenter différentes vues de données.
Pour plus d'informations sur les contrôles d'accès aux données et l'utilisation de données externes, reportez-vous
respectivement au chapitre 7, « Utilisation des contrôles standard de Visual Basic » et au chapitre 14, « Accès aux
données ».
Note Ces contrôles sont destinés essentiellement à fournir une compatibilité amont avec des applications créées avec des
versions précédentes de Visual Basic. La boîte de dialogue commune offre une méthode simple d'accès aux fichiers. Pour
plus d'informations sur cette boîte de dialogue, reportez-vous à la section suivante « Contrôles divers ».
Contrôles divers
Visual Basic fournit d'autres contrôles standard destinés chacun à un usage particulier.
Le contrôle minuterie (Timer) peut être utilisé pour créer dans votre application un événement qui se produira à
intervalles réguliers. Il s'avère particulièrement utile pour exécuter du code qui ne nécessite pas l'intervention de
l'utilisateur.
Le contrôle conteneur OLE (OLE) permet d'ajouter aisément dans votre application des fonctions telles que la liaison et
l'incorporation d'objets. À l'aide de ce contrôle, vous pouvez fournir un accès aux fonctions d'une application activée par
l'OLE, telle que Microsoft Excel, Word et bien d'autres.
Le contrôle boîte de dialogue commune (CommonDialog) insère dans votre application des boîtes de dialogues intégrées
qui permettent de sélectionner des fichiers, des couleurs, des polices et des fonctions d'impression.
Pour plus d'informations sur les contrôles standard, reportez-vous au chapitre 7,« Utilisation des contrôles standard de
Visual Basic ».
Principe du focus
Le focus permet de recevoir une entrée utilisateur par l'intermédiaire de la souris ou du clavier. Lorsque le focus se trouve
sur un objet, celui-ci peut recevoir une entrée provenant d'un utilisateur. Dans l'interface Microsoft Windows, plusieurs
applications peuvent être exécutées à tout moment, mais seule celle sur laquelle se trouve le focus a une barre de titre active
Ahmed ABOUABDELLAH 40
et peut recevoir une entrée utilisateur. Dans une feuille Visual Basic contenant plusieurs zones de texte, seule celle sur
laquelle se trouve le focus peut afficher le texte entré à l'aide du clavier.
Les événements GotFocus et LostFocus se produisent lorsqu'un objet reçoit ou perd le focus. Ces événements sont gérés par
les feuilles et la plupart des contrôles.
Événement Description
GotFocus Se produit lorsqu'un objet reçoit le focus.
LostFocus Se produit lorsqu'un objet perd le focus. Une procédure
d'événement LostFocus permet surtout de vérifier et de valider des
mises à jour, et d'inverser ou de modifier les conditions que vous
avez définies dans la procédure GotFocus de l'objet.
Le focus est visible sur certains objets. Par exemple, lorsque vous placez le focus sur des boutons de commande, ils
s'affichent avec une bordure en surbrillance autour du libellé (voir la figure suivante).
Un objet ne peut recevoir le focus que si la valeur des propriétés Enabled et Visible est True. La propriété Enabled permet à
l'objet de répondre aux événements générés par l'utilisateur tels que les événements du clavier et de la souris. La propriété
Visible détermine si un objet est visible à l'écran.
Note Les contrôles Frame, Label, Menu, Line, Shape, Image et Timer ne peuvent recevoir le focus. Une feuille ne reçoit le focus que si
elle ne contient pas de contrôles pouvant recevoir le focus.
Pour changer l'ordre des tabulations d'un contrôle, modifiez la propriété TabIndex. La propriété TabIndex d'un contrôle
détermine la position de celui-ci dans l'ordre des tabulations. Par défaut, la valeur du premier contrôle dessiné est 0, celle du
Ahmed ABOUABDELLAH 41
deuxième contrôle est 1, et ainsi de suite. Lorsque vous modifiez la position de l'ordre des tabulations d'un contrôle,
Visual Basic renumérote automatiquement les positions de l'ordre des tabulations des autres contrôles pour tenir compte des
insertions et des suppressions. Par exemple, si vous placez en premier Command1 dans l'ordre des tabulations, les valeurs
TabIndex des autres contrôles sont automatiquement ajustées dans le sens ascendant, comme indiqué dans le tableau
suivant.
Contrôle TabIndex avant modification TabIndex après modification
Text1 0 1
Text2 1 2
Command1 2 0
La valeur TabIndex la plus élevée est toujours égale au nombre de contrôles de l'ordre de tabulations moins un (car la
numérotation commence à 0). Même si vous attribuez à la propriété TabIndex un numéro supérieur au nombre de contrôles,
Visual Basic lui redonne une valeur égale au nombre de contrôles moins 1.
Note Les contrôles qui ne peuvent recevoir le focus ainsi que les contrôles invisibles et désactivés n'ont pas de propriété TabIndex et ne
sont pas inclus dans l'ordre des tabulations. Ces contrôles sont ignorés lorsque l'utilisateur appuie sur la touche TAB.
Figure 3.21 Éléments d'une interface de menus dans une feuille Visual Basic
Ahmed ABOUABDELLAH 42
Dans la feuille, la barre de menus apparaît juste sous la barre de titre, et contient un ou plusieurs titres de menu. Lorsque
vous cliquez sur un titre de menu (par exemple, sur Fichier), un menu contenant une liste d'options de menu se déroule. Les
options de menu peuvent inclure des commandes (par exemple, Nouveau et Quitter), des barres de séparation et des titres de
sous-menu. À chaque option de menu visible par l'utilisateur, correspond un contrôle Menu que vous définissez dans le
Créateur de menus (décrit plus bas dans ce chapitre).
Pour simplifier l'utilisation de votre application, regroupez les options de menu selon leurs fonctions. Par exemple, la
figure 3.21 représente le menu Fichier qui regroupe toutes les commandes relatives aux fichiers (Nouveau, Ouvrir et
Enregistrer sous…).
Certaines options de menu exécutent directement une action. Par exemple, l'option de menu Quitter du menu Fichier ferme
l'application. D'autres affichent une boîte de dialogue, c'est-à-dire une fenêtre qui invite l'utilisateur à fournir les
informations nécessaires à l'application pour exécuter une action. Ces options de menu doivent être suivies de points de
suspension (…). Par exemple, lorsque vous choisissez Enregistrer sous… dans le menu Fichier, la boîte de dialogue
Enregistrer sous apparaît.
Un contrôle Menu est un objet qui, comme les autres objets, comporte des propriétés que vous pouvez utiliser pour définir
son aspect et son comportement. Vous pouvez définir les propriétés Caption, Enabled, Visible, Checked, et d'autres, au
moment de la création ou de l'exécution. Un contrôle Menu contient uniquement l'événement Click , qui est appelé lorsque
le contrôle est sélectionné à l'aide de la souris ou du clavier.
Pour plus d'informations sur les contrôles Menu, reportez-vous à la section « Création de menus » du chapitre 6, « Création
d'une interface utilisateur ».
Menus déroulants
Un menu déroulant est un menu flottant qui s'affiche dans une feuille indépendamment de la barre de menus, tel qu'illustré à
la figure 3.22. Les éléments affichés dans un menu déroulant dépendent de la position du pointeur lorsque vous appuyez sur
le bouton droit de la souris. C'est la raison pour laquelle ces menus sont aussi appelés menus contextuels (dans Windows 95,
vous les activez en cliquant le bouton droit de la souris). Utilisez ces menus pour fournir un moyen d'accès rapide et
efficace aux commandes contextuelles souvent utilisées. Par exemple, si vous cliquez sur un contrôle TextBox avec le
bouton droit de la souris, un menu contextuel s'affiche, comme illustré à la figure 3.22.
Tout menu comportant au moins une option peut être affiché lors de l'exécution comme un menu contextuel. Pour afficher
ce type de menu, utilisez la méthode PopupMenu.
Ahmed ABOUABDELLAH 43
Pour plus d'informations sur la création des menus contextuels, reportez-vous à la section « Création de menus » du
chapitre 6, « Création d'une interface utilisateur ».
Alors que la plupart des propriétés du contrôle Menu peuvent être définies à l'aide du Créateur de menus, toutes les
propriétés de menus sont aussi disponibles dans la fenêtre Propriétés. En général, les menus sont créés dans le Créateur de
menus. Toutefois, pour modifier rapidement une propriété, utilisez la fenêtre Propriétés.
Pour plus d'informations sur la création de menus et l'utilisation du Créateur de menus, reportez-vous à la section
« Création de menus » du chapitre 6, « Création d'une interface utilisateur ».
La figure 3.24 montre l'exemple d'une boîte de dialogue prédéfinie créée à l'aide de la fonction MsgBox.
Ahmed ABOUABDELLAH 44
Cette boîte de dialogue s'affiche lorsque vous appelez la fonction MsgBox dans le code. La syntaxe du code permettant
d'afficher la boîte de dialogue de la figure 3.24 est la suivante :
MsgBox "Erreur rencontrée au cours de la tentative d'ouverture " _
& "du fichier, essayez de nouveau.", _
bExclamation, "Éditeur de texte"
Vous devez fournir trois éléments d'information, ou arguments, à la fonction MsgBox : le texte du message, une constante
(valeur numérique) pour déterminer le style de la boîte de dialogue, et un titre. Il existe des styles proposant diverses
combinaisons de boutons et d'icônes qui permettent de créer facilement des boîtes de dialogue.
Comme la plupart des boîtes de dialogue requièrent une intervention de l'utilisateur, elles s'affichent généralement comme
des boîtes de dialogue modales. Vous devez fermer (masquer ou décharger) une boîte de dialogue modale pour continuer à
utiliser l'application. Par exemple, une boîte de dialogue est modale si elle vous demande de cliquer sur OK ou sur Annuler
pour pouvoir passer à une autre feuille ou à une autre boîte de dialogue.
Les boîtes de dialogue non modales permettent de déplacer le focus entre la boîte de dialogue et la feuille sans avoir à
fermer la boîte de dialogue. Vous pouvez continuer à travailler dans l'application en cours pendant que la boîte de dialogue
est affichée. Les boîtes de dialogue de ce type sont assez rares ; elles s'affichent généralement lorsqu'une réponse est
nécessaire pour que l'application puisse se poursuivre. Dans le menu Edition, la boîte de dialogue Rechercher de
Visual Basic est un exemple de boîte de dialogue non modale. Utilisez ces boîtes de dialogue pour afficher des commandes
ou des informations fréquemment utilisées.
Pour plus d'informations sur la création des boîtes de dialogue, reportez-vous au chapitre 6, « Création d'une interface
utilisateur ».
Ahmed ABOUABDELLAH 45