Précédente     TOC Contenu     Suivante                    



Notes de cours 6

Menu et Debug





Pratique avec les contrôles: la calculatrice


On vous demande de créer une application relativement simple mais, qui demande la maîtrise de plusieurs contrôles standards et l'utilisation de techniques de codage élémentaires.

Vous devez créer et faire fonctionner une calculatrice mathématique ordinaire qui aurait l'air de ceci, par exemple:





Option Explicit
Dim Operand1 As Double, Operand2 As Double
Dim Operator As String
Dim ClearDisplay As Boolean

Private Sub ClearBttn_Click()
    Display.Caption = ""
End Sub

Private Sub Digits_Click(Index As Integer)
    If ClearDisplay Then
        Display.Caption = ""
        ClearDisplay = False
    End If
    Display.Caption = Display.Caption + Digits(Index).Caption
End Sub

Private Sub Div_Click()
    Operand1 = Val(Display.Caption)
    Operator = "/"
    Display.Caption = ""
End Sub

Private Sub DotBttn_Click()
    If ClearDisplay Then
        Display.Caption = ""
        ClearDisplay = False
    End If
    If InStr(Display.Caption, ".") Then
        Exit Sub
    Else
        Display.Caption = Display.Caption + "."
    End If
End Sub

Private Sub Equals_Click()
Dim result As Double

On Error GoTo ErrorHandler
    Operand2 = Val(Display.Caption)
    If Operator = "+" Then result = Operand1 + Operand2
    If Operator = "-" Then result = Operand1 - Operand2
    If Operator = "*" Then result = Operand1 * Operand2
    If Operator = "/" And Operand2 <> "0" Then result = Operand1 / Operand2
    Display.Caption = result
    ClearDisplay = True
    Exit Sub
ErrorHandler:
    MsgBox "The operation resulted in the following error" & vbCrLf & Err.Description
    Display.Caption = "ERROR"
    ClearDisplay = True
End Sub

Private Sub Minus_Click()
    Operand1 = Val(Display.Caption)
    Operator = "-"
    Display.Caption = ""
End Sub

Private Sub Over_Click()
    If Val(Display.Caption) <> 0 Then Display.Caption = 1 / Val(Display.Caption)
End Sub

Private Sub Plus_Click()
    Operand1 = Val(Display.Caption)
    Operator = "+"
    Display.Caption = ""
End Sub

Private Sub PlusMinus_Click()
    Display.Caption = -Val(Display.Caption)
End Sub

Private Sub Times_Click()
    Operand1 = Val(Display.Caption)
    Operator = "*"
    Display.Caption = ""
End Sub











Listes de disques, répertoires et fichiers

Pour gérer vos disques, répertoires et fichiers, VB vous offre 3 contrôles standards: le DriveListBox, le DirListBox et le FileListBox. Dans une feuille normale ils apparaîtraient comme:



DriveListBox:
La propriété .Drive contient le nom du lecteur choisi et on peut s'en servir pour changer le le lecteur comme dans: Drive1.Drive = "C"
Le fait de faire une sélection dans la liste provoque un événement Change.
DirListBox:
La propriété .Path contient le nom du répertoire courant et on peut s'en servir pour changer le le lecteur comme dans: Dir1.Path = "C:\Exemples\chap06.HTM"
Le fait de faire une sélection dans la liste provoque un événement Change.
FileListBox:
La propriété .Path contient le nom du répertoire courant. Le nom du fichier courant est dans .FileName. Cependant un test additionnel est nécessaire pour vérifier si le fichier est dans le root du disque (si oui, il se termine par \ ) ou bien s'il est dans un sous-répertoire.








Notes sur le programme:
  • La première chose à faire dans le Form_Load est de charger les items dans la liste des types de fichier - on veut seulement voir les exécutables, les fichiers de texte ou les fichiers graphiques - le .EXE est choisi par défaut (Listindex = 0)

  • La propriété Pattern du Filelist identifie le filtre pour la sélection

  • Si on entre une valeur dans le Drive ou le Directory, un événement Change est déclanché

  • En cliquant sur Start, il faut d'abord voir si un fichier a été choisi - si non, afficher un message

  • La fonction Right() (sera étudiée plus tard) est utilisée pour vérifier si le fichier est dans le Root

  • Selon le type de fichier choisi, on exécute le Shell function qui appelle un fichier exécutable; vbNormalFocus signifie d'exécuter dans un window normal

  • Un double-clique sur un fichier est égal à cliquer sur le bouton Start









CRÉATION D'UN MENU

Pour créer un menu dans une feuille on utilise l'éditeur de menu dans Tools --> Menu editor. L'éditeur ouvre une fenêtre dans laquelle on crée le menu qu'on veut voir affiché dans la feuille

On utilise les flèches et le bouton Insert pour créer la cascade d'items dans le menu.

             Fig. 5-5

Ensuite il ne reste qu'à écrire le code pour activer les fonctions du menu. Chaque item du menu n'a qu'un événement possible et c'est le Click.


Fig. 5-6











LE "DEBUGGING"

Il arrive assez fréquemment qu'un programmeur fasse une erreur en écrivant le code. Les erreurs de syntaxe sont habituellement assez évidentes et le compilateur les identie à l'exécution. Les erreurs de logique sont souvent plus difficiles à identifier. C'est pourquoi la plupart des logiciels ont une fonction de debugging qui aide à la correction des erreurs dans un programme.

La façon la plus simple d'utiliser debug en VB est de créer des breakpoints dans le code et puis de regarder l'état du programme au moment où il s'arrête. Un breakpoint est un point d'arrêt dans le code - l'exécution du programme arrête avant d'exécuter la ligne qui contient le breakpoint. Lorsque code s'arrête, une fenêtre immediate s'ouvre au bas de l'écran. Dans cette fenêtre on peut regarder le contenu des variables, des propriétés, des objets, etc. Pour continuer l'exécution après avoir étudier la situation on peut faire Start à nouveau. Cependant, il sera parfois tès utile de regarder la séquence des instructions qui suivent. Pour cela on fait le Step... et la manière la plus facile de le faire est avec la touche (F8).


Fig. 5-7





AUTRES TECHNIQUES

Branchements:
Le GoTo: Parfois dans un module il est nécessaire de changer l'ordre d'exécution des commandes. La façon la plus simple de le faire est d'utiliser un GoTo comme:
Private Sub command1_Click()
Debut:
       (code)
       If erreur = 1 Then
           GoTo Debut
       End If
End Sub
Cependant, veuillez notez que l'usage du GoTo n'est jamais recommandé car c'est une vieille technique qui risque de créer des gros problèmes de lisibilité. Il y a d'autres structures plus efficaces pour faire la même chose.

Le Do ... Loop: crée une boucle de traitement entre le Do et le Loop - on peut s'en servir pour traiter une condition d'erreur comme:
Private Sub command1_Click()
       erreur = 0
       Do While erreur = 0
              erreur = 1
              If valeur > x Then
                     erreur = 0
              End If
       Loop
       .....
La structure Do While ... Loop peut être remplacée par la structure équivalente:
While condition
       instructions
Wend


AUTRE EXEMPLE

Voici un exemple que nous utiliserons à plusieurs reprises dans les prochains cours. Il regroupe la plupart des techniques que nous avons étudiées et certaines qui s'en viennent. Je vous suggère de recréer l'application pour vous-même afin de tester les commandes.


















Si vous ne voyez pas içi ce que vous cherchez en Visual Basic,
utilisez la recherche Google pour trouver des ressources additionnelles.

Google






Haut de la page





Accueil