Cours Visual Basic
Prise de connaissance
Démarrage de VB
– Cliquer sur « Démarrer », sur « Programmes », puis sur le dossier « Microsoft Basic 6.0 »
– Cliquer sur l’icône du programme VB
• La boîte de dialogue « Nouveau projet » s’affiche et un choix se prose pour un type de projet à créer
– Cliquer sur « ouvrir » pour accepter la proposition par défaut
• Un nouveau projet s’ouvre accompagné de fenêtres et d’outils
» La taille et la forme exacte de ces fenêtres dépendent de la configuration du système
Interface
Feuille Interface Utilisateur
– C’est la feuille par défaut (Fenêtre feuille)
• appelée Form1, s’affiche au démarrage
– Grille standard avec des points servant à aligner les éléments créés et composant l’interface Utilisateur
– On peut ajuster la taille de l’interface à l’aide de la souris
– On peut ajouter des feuilles supplémentaires à l’aide de la commande : « Ajouter une feuille » du Menu « Projet »
Fenêtre Projet
– Répertorie les fichiers crées dans le projet
– On y accède par 2 boutons
• Code / Afficher l’objet
– Fichier projet est suffixé par .vbp
– Sous le nom du projet, la fenêtre affiche les composants sous la forme d’une arborescence
• Cliquer sur le bouton « Explorateur de projet » pour
l’afficher
Ecriture d’un programme
! Exemple 1 : actions
– Insérer un bouton Commande
– Utiliser Caption pour donner le nom « Afficher »
– Insérer une zone de texte par : TextBox (bouton ab)
– Cliquer sur la zone Text1, annuler la valeur de la propriété Text (de manière à avoir la zone de texte vide au départ) ;
– Double-Cliquer sur la zone de commande « ok » pour rentrer l’instruction dans la fenêtre de code de Command1_Click()
Text1.text = « Hello «
Exemple 2 : programme de jeu
– Il s’agit de réaliser une interface d’un programme de jeu simulant une machine à sous : Lucky Seven
– Règle :
• En cliquant sur « Jouez »
» Des chiffres apparaissent, si un 7 apparaît parmi eux, alors l’image des sous est affiché
• Pour arrêter, appuyer sur le bouton : Arrêtez
– Ouvrir un nouveau projet
– Créer les deux boutons de commande : bouton « commande » rester appuyé dessus, le déplacer sur la feuille et le positionner à l’endroit voulu
• Le re-dimensionner avec la souris (pointer sur le coin inférieur et tirer avec la souris)
– Pour les chiffres, utiliser le bouton
« label »
– Prévoir une zone plus importante pour le label 4 accueillant le texte Lucky Seven
• Introduire une zone « Image » pour y insérer l’image des sous
Donner des propriétés aux commandes
– Cliquer sur le bouton Command1
• Double-cliquer sur la fenêtre propriétés
• Double-cliquer sur Caption
» Saisir « Jouer »
• Faire la même chose avec Command2 en saisissant
« Arrêter »
» Pour retrouver les commandes, il suffit d’aller dans la zone de liste déroulante, Objet situé en haut de la fenêtre Propriétés
Définition des propriétés des étiquettes de chiffres
1. Sélectionner les trois étiquettes de chiffres en cliquant d’abord sur la 1ère puis sur les deux autres en maintenant le bouton MAJ appuyé
• Un rectangle de sélection encadre chacune des étiquettes
» Comme plusieurs objets ont été sélectionnés, seules les propriétés susceptibles d’être changées collectivement sont affichées dans la fenêtre Propriétés.
2. Propriétés à définir :
• Alignement : choisir 2-center ;
• BorderStyle : choisir 1-Fixed dans le menu ;
• Font : Times New Roman, style Gras, taille : 24 points ;
3. Supprimer les trois libellés afin que les cases soient vides au démarrage du programme :
• Sélectionner individuellement chacune des trois étiquettes ;
• Double-cliquer sur la propriété Caption et appuyer sur SUPPR. Le libellé de l’objet Label1 est supprimé. Répéter l’opération pour les deux autres
Définition de l’étiquette descriptive
1. Cliquer sur l’objet étiquette ;
2. Changer la propriété Caption en Lucky Seven ;
3. Changer la fonte, la taille… comme précédemment ;
4. Changer la couleur en agissant sur ForeColor. Cliquer sur l’onglet « Palette » puis sur la case violet foncé. La couleur est traduite en Hexadécimal dans la fenêtre
– Cette zone est sensée contenir le graphique des pièces. Ce graphique apparaît lorsque l’utilisateur remporte le jackpot (au moins une fois le chiffre 7)
1. Cliquer sur l’objet zone d’image
2. Mettre la propriété Stretch à True
3. Double cliquer sur la propriété Picture dans la fenêtre Propriétés. La boîte de dialogue « Charger une image » apparaît, puis aller chercher l’image dans la partition Microsoft sous Clipart. Le fichier s’appelle « Pieces.wmf ». En l’ouvrant, le métafichier Windows est chargé dans la zone d’image de la feuille
4. Mettre la propriété Visible sur False de manière à masquer les pièces au démarrage du programme. (Vous le ferez apparaître ultérieurement dans le programme)
Écriture du code du programme
– Il s’agit du code chargé de :
• calculer les chiffres aléatoires, de les afficher dans les cases correspondantes et de détecter un éventuel jackpot.
– Comme le programme est géré par l’activation des boutons « Jouer » et « Arrêter », il suffit d’associer le code approprié à ces boutons
– La fenêtre Code est une fenêtre spéciale de l’environnement de programmation permettant d’entrer et d’éditer les instructions de programmation
Ecriture d’un programme
! Écriture du code du programme : exo-Lucky
! – Doubler cliquer sur la fenêtre « Arrêter » sur la feuille. La fenêtre Code
! apparaît
!
! – Rentrer l’instruction : End
!
! – Doubler cliquer sur la fenêtre « Jouer » sur la feuille. La fenêtre Code
!
! apparaît
!
! – Rentrer le code suivant :
!
! Image1.Visible = False
!
! Label1.Caption = Int(Rnd * 10)
!
!
! Label2.Caption = Int(Rnd * 10)
!
! Label3.Caption = Int(Rnd * 10)
!
! If (Label1.Caption = 7) Or (Label2.Caption = 7) Or _
!
! (Label3.Caption = 7) Then
!
! Image1.Visible = True
!
!
! Beep
!
End If
Utilisation des contrôles
! Application 3 : réalisation d’un browser
– Il s’agit de permettre, lors de l’exécution, la sélection d’un fichier image et d’en afficher le contenu
– La sélection concerne :
• La partition : a, c, d… : une fenêtre spéciale sera ouverte à cet effet
• Le répertoire : une fenêtre spéciale sera ouverte à cet effet avec un menu déroulant. Le contenu sera mis à jour à partir de la sélection de la partition
• Le fichier : une fenêtre spéciale sera ouverte à cet effet avec un menu déroulant. Le contenu sera mis à jour à partir de la sélection du répertoire
– Les commandes :
• Création de la zone du lecteur : contrôle DriveListBox
• Création de la zone du répertoire : contrôle DirListBox
• Création de la zone du fichier : contrôle FileListBox
• Création de la zone image : contrôle Image
zone du lecteur
zone de l’image
zone du répertoire
zone du fichier
– Mise à jour des propriétés
• Le fichier image doit être d’un des types suivants :
» *.bmp, *.mf, *.ico ;
• Image1 :
» Stretch= true, BorderStyle = 1-Fixed Single
– Code :
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
SelectedFile = File1.Path & « \ » & File1.FileName Image1.Picture = LoadPicture(SelectedFile)
End Sub
Application 4 : Utilisation d’un Objet OLE
– Commandes :
• Créer les labels tels que mentionné dans la figure
• Utiliser le contrôle OLE pour créer trois rectangles en dessous des labels :
» bloc-notes, calcul des coûts et Dessins du site ;
• Une fenêtre d’objets s’affiche. Faire défiler les objets et choisir l’application souhaitée
• Changer les propriétés des objets :
» Pour Label 1 : Font : Times…
» Pour Ole1, Ole2 et Ole3 : BorderStyle (0-None), Appearence (0-Flat) et BlackColor (Gris Clair)
• Mettre le code End dans la procédure événementielle Command1_Click
Programmation en VB
! Anatomie d’une instruction VB
– C’est un ordre donné à la machine pour réaliser un travail donné
– Cet ordre peut être de différentes natures :
• lecture d’une donnée, affichage d’un résultat, ouverture d’un fichier, calcul d’un résultat, action système, etc.
– L’instruction a une syntaxe qui dénote une phrase dans le langage d’expression des ordres
– Exemples
Beep // un seul mot clé dont l’effet est d’émettre un son
Label1.Caption = Time // syntaxe plus développée conduisant à affecter par le signe = la valeur de la fonction de VB Time à la propriété Caption de l’objet Label1
! Notion de variable
– C’est un conteneur de valeur
– Déclaration
DIM Nom
» Réserve un espace mémoire
» En l’absence de déclaration de type, Nom est déclaré de type variant et peut contenir aussi bien des nombres que du texte
– Déclaration implicite sans DIM
Nom = « Toto » Valeur1 = 24 Valeur2 = 38.5
Notion de variable
– Exercice : écrire une interface VB affichant le contenu d’une variable Nom, contenant successivement le texte « smart » et le nombre 99
1. Créer deux boutons : Afficher et Arrêter
2. Changer Caption de Command1 en Afficher
3. Changer Caption de Command2 en Arrêter
4. Créer deux labels : Label1 et Label2 associés au bouton Afficher
5. Changer les propriétés des labels :
Caption =vide, BorderSTyle = 1-Fixed Single, Font = MS sans sérif, normal, 12
! A. Belaïd
Notion de variable
– Exercice (suite)
6. Introduire comme code dans la procédure événementielle Command1_Click associé à Label1 et Label2:
Dim Nom
Nom = « Smart »
Label1.Caption = Nom
Nom = 99
Label2.Caption = Nom
7. Introduire comme code dans la procédure événementielle Command2_Click :
End
Utiliser une variable pour l’entrée : InputBox
– InputBox est une fonction de lecture VB qui renvoie une valeur. Cette valeur est affectée à une variable
1. Créer deux boutons commandes, l’un appelé InputBox et l’autre Quitter (agir sur leur Caption pour indiquer ces noms)
2. Créer un bouton label, le creuser en agissant sur BorderStyle
3. Mettre End dans le code de la commande Quitter
4. Inscrire le code suivant pour la commande InputBox
Dim Invite, NomComplet
Invite = « Saisissez votre prénom et votre nom »
NomComplet = InputBox$(Invite)
Label1.Caption = NomComplet
– Il est possible d’afficher le contenu d’une variable en l’affectant à une propriété (par ex.. caption d’un objet étiquette) ou en le passant comme argument à une fonction de boîte de dialogue
! La syntaxe de MsgBox est :
– BoutonCliqué = MsgBox(Message, NumeroDeBouton, Titre)
– Message : texte affiché à l’écran
– BoutonCliqué : est un numéro de style de bouton (de 1 à 5)
– Titre : texte affiché dans la barre de titre de la boîte de dialogue
– La variable BoutonCliqué est affectée du résultat livré par la fonction MsgBox, c’est le bouton sur lequel l’utilisateur a cliqué dans la boîte de dialogue
Utiliser une variable pour la sortie : MsgBox
– Pratique :
• Réutiliser le projet précédent
• Ajouter dans le code de la procédure Command1_Click l’instruction suivante avant
Label1.Caption = NomComplet : MsgBox (NomComplet), , « Résultat de l’entrée »
• Exécuter : une boîte de dialogue apparaît pour confirmer l’entrée du label avant de l’afficher dans label1.