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.
|