Précédente     TOC Contenu     Suivante                    




Notes de cours 4

Création d'un form




Design de l'application

Avant de commencer à créer les objets en VB, il faut normalement planifier le travail à faire. Cela veut dire d'utiliser un papier et un crayon et de dessiner un plan ou modèle de l'application. En architecture on dessine un plan de maison. En informatique on fait la modélisation de l'application.

Pour commencer allez voir les notes en annexe sur le sujet des Normes de conception.



Propriétés du Form


Fig. 4-1


(Name): même nom qu'on lui donne en le sauvegardant - le nom qu'on utilise lorsqu'on réfère à la feuille dans le code.

Caption: nom qui apparaît dans la ligne Titre - information seulement - pas référencé dans le code.

BorderStyle: ligne titre voulue et si la grandeur peut être changée à l'exécution - 1 et 2 sont des Forms ordinaires.

BackColor: couleur de la feuille.

StartUpPosition: où on veut que la feuille s'affiche sur l'écran à l'exécution.

Au sujet des noms (la propriété "Name"): on devrait utiliser un système de terminologie standard à travers toutes les applications VB. Ceci veut dire d'identifier tous les objets ainsi que les variables avec un préfixe qui est facile à reconnaitre partout dans le code.
Voici la liste des préfixes standards utilisés en VB:




Pour établir la grandeur et la position de la feuille lors de l'exécution, on le fait habituellement dans le code.

Dans le Form_Load event on écrit le code qui sera exécuté en lançant l'application:

Private Sub Form_Load()
          Me.Width = 8000
          Me.Height = 6000
          Me.Left = (Screen.Width - Me.Width) / 2
          Me.Top = (Screen.Height - Me.Height) / 2
End Sub

Les mesures pour l'objet Screen sont en twips:
517 twips = 1 cm
1440 twips = 1 pouce.


Ajouter des controls au Form



                    Fig. 4-2
Pour mettre un control dans le form il faut d'adord sélectionner le control dans boîte d'outils qui est à la gauche de l'écran - si la boîte n'est pas là, on l'active avec le bouton Boîte d'outils .

Dans la boîte d'outils on clique sur le control voulu et puis on clique sur la feuille à l'endroit où on veut placer le control et on le traîne à la grandeur qu'on désire.

Une fois le control en place on peut changer sa grandeur, le déplacer ou l'enlever (Delete) ou faire Undo si on s'est trompé.

Pour faire une copie d'un control, on le sélectionne et on fait Copy et Paste - on répond "Non" à la question Control array parce qu'on veut des controls individuels - un nouveau nom sera assigné automatiquement au control, Label2, par exemple, mais il faudra changer le Caption.

Pour sélectionner plusieurs controls on clique en haut, à gache du premier et on traine la souris jusqu'au coin droit, en bas du rectangle de sélection; on peut aussi le faire avec (Control)(Click).

Pour aligner un groupe de controls ou pour les mettre de la même grandeur, on les sélectionne tous et on utilise les boutons d'alignement: .
Le bouton Undo est bien utile si on se trompe de sélection.

Propriétés communes des controls

Name: le nom interne de l'objet, tel qu'il sera utilisé dans le code

Appearance: si le control possède ou non un aspect en relief

BackColor, ForeColor couleur du fond et couleur du texte

Visible, Enabled valeur True/False si le control est visible et s'il est actif - par exemple, un bouton peut être désactivé (facture.enabled = false) si on ne veut pas que l'utilisateur le clique à certains moments dans le traitement.

TabIndex l'ordre d'activation des controls sur la feuille - détermine quel control aura le Focus quand l'utilisateur fait un Tab.



Label, PictureBox

Label: un titre, une étiquette - utilisé pour afficher une information

PictureBox: une image - utilisé pour afficher un fichier contenant une image (.BMP, .GIF, etc) - sert pour un logo d'entreprise, par exemple



Saisie de données

TextBox: sert à saisir une donnée au clavier - la donnée saisie est gardée dans la propriété Text de l'objet et on peut s'en servir à partir de là:







CommandButton, OptionButton et CheckBox


               Fig. 4-5
CommandButton ( cmd ) - un objet 3D - pas de couleur - effet de s'enfoncer quand on clique

Si Default = True, marge du bouton est foncée et Click sera activé par Enter

Si Cancel = True Click sera activé par Esc





OptionButton Par définition un bouton d'option fait partie d'un groupe; on crée d'abord un cadre (Frame) et on y met les boutons d'options. Le Frame détermine que les boutons font tous partie du groupe. Si j'ai besoin de 2 groupes de boutons, je doit créer 2 Frames différents.

└ l'exécution on doit tester la propriété Value de chaque bouton - si elle retourne True, le bouton est celui qui a été sélectionné (seulement un bouton du groupe retourne True) et j'exécute l'action appropriée.








CheckBox: on se sert de la propriété Value pour tester si la boîte est vide (Value = 0), cochée (Value = 1) et on peut aussi regarder pour Indéfini (Value = 2)..


Voici le code pour l'application de boutons et de cases:



Option Explicit
    
Private Sub Form_Load()
    chkPrinter.Value = 0
    chkMonitor.Value = 0
    chkModem.Value = 0
    chkNic.Value = 0
    optPent.Value = False
    optPent2.Value = False
    optPent3.Value = False
    optWin98.Value = False
    optWinnt.Value = False
    lblmsg.Caption = ""
End Sub

Private Sub cmdConfirmer_Click()
    Dim strPrNom As String, strOsNom As String
    Dim vntAccPr, vntAccMn, vntAccMod, vntAccNic
    
    'Si pas de processeur choisi, afficher erreur
    'et refaire la saisie
    
    If optPent.Value = False _
            And optPent2.Value = False _
            And optPent3.Value = False Then
        MsgBox ("Vous devez choisir un Processeur")
        optPent.SetFocus
    Else
        If optPent.Value = True Then
            strPrNom = "Pentium"
        ElseIf optPent2 = True Then
            strPrNom = "Pentium II"
        Else
            strPrNom = "Pentium III"
        End If
    End If
    
    'SetFocus est une Method qui retourne le Focus
    '(le curseur) à un objet spécifié,
    'dans ce cas-ci, un bouton d'option
    'Voir "SetFocus Method" dans Help.
    
    'Check if OS was selected - if no
    'display error message; if yes, get its name.
    If optWin98.Value = False _
            And optWinnt.Value = False Then
        MsgBox ("You must select an Operating system")
        optWin98.SetFocus
    Else
        If optWin98.Value = True Then
            strOsNom = "Windows 98"
        Else
            strOsNom = "Windows NT"
        End If
    End If
    
    'Verify which accessories were checked in order
    'to build output label.
    If chkPrinter.Value = 1 Then
        vntAccPr = " printer "
    End If
    If chkMonitor.Value = 1 Then
        vntAccMn = " monitor"
    End If
    If chkModem.Value = 1 Then
        vntAccMod = " modem"
    End If
    If chkNic.Value = 1 Then
        vntAccNic = " NIC"
    End If
    
    lblmsg.Caption = "You selected a " & PrName _
      & " with " & strOsNom & Chr(13) _
      & "and accessories: " & vntAccPr & vntAccMn _
      & vntAccMod & vntAccNic
      
     'If you want to force a line change in a Label,
     'insert a Chr(13) - the carriage return character-
     'in the string.
End Sub
        
Private Sub cmdCancel_Click()
    Form_Load
End Sub

Private Sub cmdExit_Click()
    Unload Me
    End
End Sub









Les Listes

ListBox: affiche une liste de choix dans une boîte - on sélectionne l'élément voulu en cliquant dessus - la liste peut être créée lors de la création du Form ou elle peut être créée dynamiquement pendant l'exécution du code (on verra la technique un peu plus loin).


Pour utiliser la liste il faut comprendre que la liste est en fait un tableau (Array) et que chaque item dans la liste possède un index qui permet de le retrouver.

Au sujet des tableaux: en VB on déclare un tableau comme une variable ordinaire, avec DIM. par exemple:
Dim Mois(1 to 12) As String
déclare un tableau Mois qui contiendra 12 valeurs avec index de 1 à 12. Mois(1) = "Janvier", etc. Le tableau:
Dim Departement(6 ) As String
déclare un tableau de 6 éléments avec le premier index = 0. On peut aussi déclarer un tableau de grandeur indéterminée (unbound) en utilisant la fonction Array() dans le code:
Dim Semaine, Jour
Semaine = Array("lundi", "mardi", "mercredi")
Jour = Semaine(1)       'retourne mardi


Le ListBox est essentiellement un tableau "unbounded" où le premier item est ListIndex 0, etc.

Dans le Click event du ListBox on peut identifier l'index qui a été sélectionné: ListIndex ainsi que l'item lui-même avec l'expression: objet.List(objet.ListIndex)



Le ComboBox est une combinaison (de là le terme combo) d'un TextBox et d'un ListBox. Il permet à l'utilisateur de cliquer sur un item de la liste ou d'en entrer un nouveau. On utilise les 2 events Click et Change pour déterminer ce qui se passe.


Si on veut charger la liste de la boîte Combo au moment de l'exécution, on écrit le code approprié dans le Load event de la feuille:







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