|
|
|
|
Une drôle de bete : la fonction MsgBox
Variable = MsgBox (texte1, integer, texte2, ... ) MsgBox comporte donc trois arguments essentiels : le texte du message à envoyer (texte1) le style des boutons et de l’icône éventuelle à faire figurer sur le message (integer) le texte de la barre de titre (texte2) En ce qui concerne les deux arguments de type texte, aucun problème. En revanche, le deuxième argument, de type Integer, mérite qu’on s’y arrête. Cet Entier (Integer) va donc avoir pour rôle de spécifier tout à la fois le type d’icône employée dans la boîte de message, et l’échantillon des boutons proposés à l’utilisateur. Toutefois, cet argument peut être spécifié de deux manières qu’il convient de connaître : Chaque possibilité d’icône ou de boutons est associée à un nombre entier (voir l’Aide du logiciel). Pour obtenir la combinaison voulue, il suffit d’additionner les nombres correspondants, et c’est cette somme qui sera le deuxième argument. Mais il existe une autre façon de spécifier cet argument : elle consiste à employer des Constantes VB. Ces Constantes VB sont des mots réservés du langage, qui sont traduits par le compilateur en nombre entiers. Du point de vue du résultat, cette solution est donc strictement équivalente à la précédente, consistant à entrer directement des nombres. En revanche, certains programmeurs la préféreront en raison de la plus grande lisibilité qu’elle introduit dans le code. Ces Constantes VB ne s’inventent pas ! Elles figurent dans l’Aide du logiciel, et c’est là qu’il faut les chercher… A titre d’illustration, la boîte de dialogue située au-dessus pourrait être indifféremment programmée avec : Texte = "Enregistrer les modifications (...) ?" Titre = "Microsoft FrontPage" Utilisation des valeurs entières : Toto = MsgBox ( Texte, 51, Titre ) Utilisation des constantes VB : Toto = MsgBox (Texte, vbExclamation + vbYesNoCancel, Titre) Tout cela n’épuise pas la question de la valeur renvoyée par la fonction MsgBox, valeur qui va donc se retrouver dans la variable Toto. On a vu que cette valeur correspondait au bouton sur lequel l'utilisateur aura appuyé pour clore cette boîte de message. On pourra donc tester la valeur de la variable Toto pour déterminer quel était ce bouton (s'il y en avait plus d'un, évidemment…). Ce test peut-être mené soit sous l'angle d'une valeur entière, soit sous celui d'une constante VB, les renseignements se trouvant dans l'Aide. En l'occurrence, on pourrait avoir à la suite du code précédent des lignes du genre : Utilisation des valeurs entières : If Toto = 6 Then ' enregistrement Elseif Toto = 7 Then ' pas d'enregistrement Else ' annulation EndIf Utilisation des constantes VB : If Toto = VbYes Then ' enregistrement Elseif Toto = VbNo Then ' pas d'enregistrement Else ' annulation EndIf En résumé, MsgBox est une fonction qui vous donne accès à un type de Form préprogrammé, aux fonctionnalités limitées, mais à la programmation très rapide. La seule exception à tout ce qui précède concerne l'utilisation de MsgBox avec toutes les options par défaut : pas d'icônes, juste un bouton OK, et juste un message (pas de titre). La syntaxe peut être alors considérablement simplifiée pour donner : MsgBox Truc …Qui affechera la valeur de la variable Truc dans une boîte. Si cette utilisation de MsgBox produit un résultat nettement trop grunge pour figurer dans un produit fini, elle peut s'avérer très pratique pour effectuer certains déboguages (j'en fais personnellement une consommation immodérée). |
Tu peus aller la ausi:
|