À quoi sert le programme VB ?

Programmation Visual basic

À quoi sert le programme VB ?

Rappel du rôle d’un programme source

La phase de compilation

J’ai dit dans la séquence précédente que nous allions apprendre à écrire des programmes qui s’exécuteront sur l’ordinateur.
En fait, c’est faux : il y a programme et programme. Celui que nous écrirons sera traduit par un outil spécifique (le compilateur) lors de la phase dite de compilation. Le résultat de cette compilation sera un programme qui, lui, sera exécuté par l’ordinateur.
Notez que cette phase de compilation est transparente lorsque le programme est écrit correctement. Elle est tellement transparente que, parfois, certains ne la connaissent même pas.

Représentation de l’information dans l’ordinateur

Les informations

Quel est l’intérêt du compilateur ? Il est immense. Un ordinateur ne manipule que des 0 et des 1 (le terme technique est bit, information valant 0 ou 1). N’oublions pas que tous les composants de l’ordinateur sont alimentés par du courant. La mémoire vive, notamment, qui contient les programmes en cours d’exécution, contient des charges électriques. Dit autrement, toutes les informations contenues dans la mémoire sont codées à l’aide de charges électriques. Cela justifie nos valeurs 0 et 1 : le 0 correspond à l’absence de courant et le 1 à la présence de courant.
Tout cela pour dire que toute information (votre CV tapé sous Word, une fiche de paie réalisée sur un tableur, le programme VB que nous allons lancer…) en mémoire est codée sous la forme de 0 et de 11. Évidemment, le codage n’est pas arbitraire, il existe des règles très précises permettant de passer d’une information quelconque à son codage sous la forme de 0 et de 1. Le codage doit évidemment être décodable, puisque les informations doivent être récupérées : le codage en 0 et 1 est la technique propre à l’ordinateur pour stocker les informations, mais l’utilisateur veut toujours les percevoir sous leur forme habituelle (des nombres, du texte…).
Ainsi :
– lorsqu’une donnée entre dans l’ordinateur (saisie au clavier par exemple), elle est codée sous forme de 0 et de 1 ;
– lorsqu’une donnée doit sortir de l’ordinateur (affichage à l’écran), les 0 et 1 qui la représentent dans l’ordinateur sont décodés pour lui rendre sa forme lisible.
Prenons un exemple.
Envisageons un programme élémentaire et, il faut bien le reconnaître, sans intérêt :
l’utilisateur saisit un nombre et le programme affiche ce nombre à l’écran.
Supposons que je saisisse la valeur 73. Elle sera codée en mémoire 010010012. Lorsque le programme devra afficher la valeur, il ira chercher les 0 et les 1 en mémoire (soit 01001001) et les décodera pour donner 73.
Voici d’autres exemples de codage :

– le mot Teckel (je raffole de ces petits animaux) sera codé 0101010001100101011000110110101101100101011011001 ;
– le nombre réel (« à virgule ») – 823 086 683 711 594 488 011,716 506 419 23 sera codé 1000000011101011000011110000011111000111110001102.

Les instructions

Un programme informatique possède deux composantes : d’une part, les informations, les données qu’il manipule et, d’autre part, le programme lui-même, à savoir les différentes instructions.
Nous venons d’étudier la façon dont les différentes informations manipulées par l’ordinateur étaient stockées dans sa mémoire. Voyons maintenant comment les instructions sont stockées.
En fait, il n’y a pas de mystère : comme toute chose manipulée par l’ordinateur, les instructions seront stockées sous la forme de 0 et de 1.
Voyons l’instruction algorithmique suivante :
si Nombre > 1
alors
Nom := « Teckels »
sinon
Nom := « Teckel »
fin-si
Prenons un peu d’avance… sous VB, cette instruction s’écrira ainsi :
1 if Nombre > 1 then
2 Nom = « Teckels »
3 else
4 Nom = « Teckel »
Comment coder cette instruction avec des 0 et des 1 ? Ce n’est pas possible, car cette instruction est complexe. Attention, pas complexe dans le sens compliqué, mais complexe car constituée de plusieurs éléments. En effet, l’instruction if présentée ci-dessus est écrite sur cinq lignes. Cette instruction contient deux instructions :
– une affectation en ligne 2 ;
– une autre affectation en ligne 4.
changement de base. Nous comptons en base 10 et manipulons donc les chiffres de 0 à 9. La base 2 (appelée base binaire) ne possède que les chiffres 0 et 1. Ainsi, les nombres 0, 1, 2, 3, 4, 5… en base 10 correspondent respectivement aux nombres 0 , 1, 10, 11, 100, 101… en base 2. Si vous continuez à compter comme cela, vous vous rendrez compte que 73 en base 10, c’est 1001001 en base 2. Je rajoute un 0 devant ce nombre car les bits sont manipulés par paquets de 8. Ce calcul mathématique, pas très facile pour nous, est très simple pour l’ordinateur. Pour retrouver la valeur initiale, il suffit de faire l’opération inverse pour passer de la base 2 à la base 10.
Cette notion d’instruction en contenant d’autres n’est pas neuve : on la retrouve dans le test (si) et les boucles (pour, répéter et tant que).
Une instruction complexe ne peut pas être comprise directement par l’ordinateur. Impossible donc de la traduire directement en 0 et 1 sans l’étape préalable de compilation.

Différence de fonctionnement entre l’ordinateur et nous

Il ne s’agit pas de faire un cours de matériel : ce qui m’intéresse ici, c’est uniquement le processeur, et encore : pas question d’étudier finement son fonctionnement réel, mais juste de comprendre grosso modo son principe.
Le processeur exécute réellement des instructions, mais ces dernières ont peu à voir avec celles dont nous parlons. Lorsque vous parlez à un très jeune enfant, vous employez un vocabulaire très simplifié et des tournures de phrase élémentaires : faire à un bambin de deux ans un discours fleuve, plein d’ironie, d’implicite, de sous-entendus et de phrases compliquées aura deux conséquences possibles : soit vous le ferez pleurer, soit vous le ferez rire, mais en tout cas, il est certain qu’il ne comprendra rien.
Le processeur obéit à la même logique : il ne comprend pas ce qu’il fait, car il n’a, au sens propre, aucune intelligence. On lui donne un ordre, il l’exécute, point, sans se poser la question de sa pertinence ou de sa validité. Les instructions seront donc élémentaires et très simples. Lorsque je dis à mes étudiants « vous pouvez faire une pause », il faudrait que je traduise cela au processeur en détaillant énormément : « posez vos crayons, levez-vous, prenez votre manteau, enfilez-le, marchez vers la porte, ouvrez-là… ».
Voyez bien le dilemme :
– la phrase « vous pouvez faire une pause » est très claire pour nous, mais n’est pas compréhensible pour quelqu’un ne comprenant pas la notion de pause ;
– l’autre version avec plein de détails peut être mise en œuvre par tous puisqu’il n’y a que des instructions de base1. Le problème, c’est que nous obtenons quelque chose de beaucoup plus verbeux, et, paradoxalement, moins intelligible pour nous puisque cette formulation nous fait perdre de la sémantique : l’idée que l’on fait un pause disparaît au profit d’une suite d’opérations élémentaires dont on ne voit pas la finalité.
Je résume :
– l’ordinateur (le processeur) ne comprend que des instructions élémentaires. Pour faire une instruction au sens où nous l’entendons, il faudra plusieurs, voire des dizaines d’instructions élémentaires qui ne sont pas très lisibles par le développeur ;
– le développeur, au contraire du processeur, est intelligent et est doué d’abstraction. Les instructions qu’il manipule sont donc de plus haut niveau et sont incompréhensibles par le processeur.
Dit autrement, nous avons deux points de vue :
– le processeur ne comprendra que des instructions élémentaires qui pourront, elles, être codées sous la forme de 0 et de 1 ;
– le développeur souhaite disposer d’un langage de programmation qui soit proche de lui et de sa façon de raisonner. Que cela ne corresponde pas à la logique de l’ordinateur n’est pas son problème.

La phase de compilation

C’est là tout l’enjeu des langages de programmation et de leur évolution : les premiers langages (assembleur par exemple) étaient très proches de l’ordinateur, mais pas du développeur. Ce langage était simpliste mais pas agréable à utiliser.
Ensuite, les langages plus évolués, dits procéduraux (le C, le Pascal…) ont vu le jour. Ils s’adressent exclusivement aux développeurs et apportent de l’abstraction qui permet d’écrire des programmes proches du raisonnement intellectuel.
C’est pour cette raison que le monde des langages de programmation est en perpétuelle évolution : les chercheurs tentent perpétuellement d’améliorer la qualité des langages pour qu’ils soient les plus proches possible de notre perception de la réalité. C’est dans cet ordre d’esprit que les langages modernes (Delphi, C++, Java, un petit peu VB…) sont orientés objet1.
Le problème, c’est que plus le langage de programmation est proche de nous, plus il est aisé à utiliser pour nous, mais plus il s’éloigne du langage assembleur compris par l’ordinateur.
Pour passer de l’un à l’autre, à savoir du langage de développement au langage compris par le processeur, on utilise un compilateur. Vous aurez compris que plus le langage de développement s’améliore, plus le compilateur doit être sophistiqué pour combler le fossé qui s’élargit entre le langage du développeur et le langage assembleur.
Voici un petit schéma récapitulant les choses :
programme dans programme en le langage de assembleur compilateur  programmation pouvant être choisi exécuté
Le problème de notre vocabulaire actuel, c’est que l’on ne cesse de parler de programmes. S’agit-il du résultat de la compilation ou du programme écrit par le développeur ?
Pour préciser les choses, nous allons introduire un peu de vocabulaire :
Le programme source (ou source2) est le programme écrit dans le langage de programmation choisi par le développeur.
Lorsque le source est compilé, on obtient le programme exécutable (ou exécutable) qui est directement compréhensible par le processeur.
Notre schéma précédent peut donc se réécrire ainsi :
source compilateur exécutable

Situons VB dans ce cycle de développement

Vous vous sentez peut-être un peu frustré, car vous venez pour écrire du code et, depuis quatre pages, je vous sers un discours plus ou moins clair.
Où veux-je en venir ? Vous serez d’accord avec moi pour dire que le rôle du compilateur tel que je vous l’ai présenté est crucial. Nous allons donc voir où cet outil se situe dans VB.
VB, comme tous les langages modernes, dispose d’un EDI (Environnement de Développement Intégré). Cela signifie que tous les outils dont vous avez besoin pour travailler avec le langage Basic sont intégrés dans VB. Ainsi, au sein même du programme VB, vous pouvez :
– écrire votre programme source (VB dispose donc de la fonction d’éditeur de texte) ;
– compiler votre source (VB intègre donc un compilateur) ;
– corriger vos erreurs de syntaxe grâce à l’intégration de l’éditeur et du compilateur ;
– faire tourner l’exécutable issu de la compilation du source ;
– exécuter le programme instruction par instruction, évaluer le contenu des variables… (VB dispose donc également d’un débuggeur, programme dont l’objet est d’aider à localiser les bugs1).
Vous voyez que VB est bien plus qu’un langage. C’est pourquoi j’ai parlé du programme VB et non du langage VB. Savoir cela est important pour bien distinguer les étapes lorsque vous travaillez. Nous étudierons ces différentes fonctions dans le cours.

Interface VB

Vue d’ensemble

Tout au long de ce cours, nous allons étudier les différents éléments constituant VB, à savoir :
– les instructions VB, soit l’écriture du source ;
– comment exécuter le source tapé (et donc comment le compiler) ;
– comment débugguer le source s’il contient des erreurs.
Avant tout, lançons VB et découvrons l’affichage :
VB est lancé, mais vous avez en plein milieu de l’écran une fenêtre appelée Nouveau projet qui vous propose des options pas forcément très claires.
Vous devrez demander à votre meilleur ami (le bouton Aide présent sur la fenêtre) pour avoir des explications détaillées. Je vais juste vous dire l’essentiel, à savoir que cette fenêtre permet de choisir le type d’application que vous voulez réaliser : une DLL, un programme exécutable…
Vous pouvez (et je vous le conseille) cocher la case Ne plus afficher cette boîte de dialogue pour que VB choisisse automatiquement EXE standard qui est le seul choix à faire.
Le jour où vous voudrez écrire une DLL, vous pourrez toujours le faire en passant par la boîte de dialogue de la commande Fichier/Nouveau projet1.
Barre de menus, commandes permettant d’agir sur le source (le menu Projet permet d’ajouter des éléments au source, Exécuter permet de l’exécuter…).
La boîte à outils contient tous les contrôles regroupés par thèmes. Par défaut, seuls les contrôles généraux (les plus fréquents) sont affichés.
Navigation dans le projet (feuilles et modules).
Fenêtre contenant la feuille (vierge pour le moment).
Propriétés du contrôle sélectionné (ici, la feuille).
Notez deux choses très importantes :
– vous pouvez avoir une interface légèrement différente de la mienne, soit parce que vous utilisez VB Net (qui vient de sortir alors que j’écris ces lignes), soit parce que vous avez une version de VB 6 différente de la mienne. Dans ce cas, il vous manquera peut-être certaines commandes et contrôles ou, au contraire, vous en aurez plus. Cela n’a aucune importance, car nous n’aborderons pas ces outils très pointus et totalement inutiles à notre niveau ;
– ne comptez pas sur moi pour vous présenter en détail l’interface graphique et toutes ses possibilités. Utilisez l’aide de VB1 (touche F1 ou menu ?) pour découvrir sa richesse. Je ne parlerai que des menus et commandes essentielles.

Les éléments clés

Le projet

Un programme source VB est constitué de plusieurs fichiers. En effet, chaque feuille est stockée dans deux fichiers :
– la description de la feuille et de ses contrôles est dans un fichier d’extension .frm (pour FoRMulaire) ;
– le code source associé à cette feuille est dans un fichier d’extension .bas (pour BASic, le langage utilisé par VB). Notez dès à présent que les fichiers contenant le code s’appellent des modules et sont organisés de façon précise. Nous reviendrons bien entendu plus tard sur les modules.
Comme un programme peut très vite regrouper des dizaines de feuilles, vous imaginez le nombre de fichiers associés au même programme ! Pour les chapeauter tous, VB ajoute la notion de projet. Un projet est un contenant de tous les fichiers associés à un programme, un peu comme un dossier contenant divers fichiers. Concrètement, un projet sera un fichier d’extension .vbp (VB Projet) contenant la liste de tous les fichiers (feuilles et modules) à utiliser.
Dans la barre de titre de la fenêtre précédente (tout en haut de la fenêtre), vous voyez Project1 – Microsoft Visual Basic [création]. En lançant VB, vous êtes directement dans un projet vierge appelé Project1, contenant une seule feuille (Form1) sans code associé ni module. Si vous ajoutez des feuilles, elles seront automatiquement intégrées au projet.
Inversement, lorsque vous voulez ouvrir un programme déjà existant (pour modifier par exemple une feuille ou un morceau de code), ce n’est pas la feuille seule que vous allez ouvrir puisqu’elle ne sert à rien hors projet, mais le projet la contenant. Ouvrir le projet revient à accéder aux différents constituants, vous pouvez dès lors modifier la feuille que vous souhaitez, puis recompiler le programme.
Sans être trop technique, la notion de projet aide à mutualiser le code. Par exemple, vous pouvez définir une feuille et son code pour demander à l’utilisateur de rentrer un mot de passe. Si vous avez besoin de cette fonctionnalité d’authentification par mot de passe dans plusieurs applications, il vous suffira d’ajouter cette feuille aux différents projets concernés. Notez bien que cet ajout revient à insérer une ligne dans le fichier projet. Vous n’avez donc pas à dupliquer votre feuille de mot de passe. Ainsi, si vous devez la modifier, vous ne le modifiez qu’une fois et tous les projets l’utilisant seront automatiquement mis à jour. On retrouve le principe du raccourci sous Windows.

La barre de menus

Je vais vous présenter rapidement les différents menus.
Barre de menus
Fichier
Classique sous Windows, ce menu permet d’ouvrir, enregistrer, fermer ou imprimer des projets mais aussi d’enregistrer ou d’imprimer des modules ou des feuilles.
Édition
Toujours aussi classique, permet d’annuler ou refaire une action, de faire du couper, copier et coller, de chercher du texte… Les commandes de fin de ce menu permettent également d’accéder à des outils d’aide à la frappe du source.
Affichage
Classique… vous permet de définir les fenêtres à afficher. Dans d’autres applications, ce menu est souvent un sous-menu de Édition. Ce n’est pas le cas ici du fait de sa longueur. Il mérite bien un menu à lui tout seul.
Projet
Tout ce qui concerne la gestion du projet est ici :
– ajout ou suppression de feuilles ou de module au projet ;
– ajout de composants à la boîtes à outils pour bénéficier d’autre chose que les composants standards ;
– options liées au projet.
Il est possible d’ouvrir plusieurs projets à la fois, de même que sous Word, vous pouvez travailler sur plusieurs documents simultanément. Les ressources nécessaires pour la gestion d’un projet font qu’il n’est guère réaliste d’en ouvrir plusieurs à la fois.
Format
Ce menu vous aidera à aligner les contrôles sur vos feuilles.
Débogage
Lorsqu’un programme ne fonctionne pas comme il le devrait, vous devez vous creuser la tête… en utilisant un outil qui vous aidera à traquer les bugs, le débogueur. (Voir la séquence 6.)
Exécution
Pour exécuter votre application, ce qui est tout de même sa finalité.
Requête et Schéma
Pour l’accès aux bases de données, hors sujet pour nous.
3984 TG 15
Séquence 2 À quoi sert le programme VB ?
Outils
Pour ajouter automatiquement l’en-tête d’un sous-programme, ce qui est d’un intérêt limité, mais aussi pour paramétrer le comportement du programme VB (éditeur, compilateur…).
Compléments
Sans objet pour nous.
Fenêtre
Menu classique sous Windows… permet de naviguer dans les différentes fenêtres ouvertes.
?
C’est l’aide… sans conteste votre meilleur ami !

Les barres d’outils

L’ergonomie de Windows (et des applications fonctionnant sous Windows) impose que :
– toutes les commandes pouvant être exécutées par une application soient présentes dans les différentes barres de menu ;
– parmi ces commandes, les plus utilisées soient présentes dans les barres d’outils et sont représentées par un icone1 ;
– parmi les commandes des barres d’outils, les plus utilisées possèdent des raccourcis clavier.
Les nouvelles normes d’ergonomie Windows (qui sont en perpétuelle évolution) imposent que, dans la barre de menus, toute commande :
– disposant d’un icone dans une barre d’outils soit précédée du dessin de l’icone pour que l’utilisateur associe facilement les deux ;
– disposant d’un raccourci clavier soit suivie de ce raccourci pour que l’utilisateur le découvre.
Avec cette norme, évidemment suivie par VB, impossible de justifier l’usage régulier de la barre de menus en disant que vous ne saviez pas qu’il y avait un icone !
Prenons l’exemple du menu Affichage :
À quoi servent ces deux icones ?
Pour le savoir, cherchons-les dans les menus…
Ah, les voilà ! C’est donc afficher le code ou l’objet… c’est plus clair.
La commande est suivie d’un raccourci clavier indiquant qu’appuyer sur F2 affiche l’explorateur.
La commande est précédée d’un icone, ce qui signifie qu’une barre d’outils permet d’exécuter le programme. Où est cet icone ? Là !
Vous noterez que les commandes suivantes du menu Affichage (Fenêtre exécution, Fenêtre espions…) disposent d’un icone qui n’apparaît pas dans les barres d’outils. Est-ce une erreur de ma part ? Non, cela signifie juste que l’icone existe mais n’est pas dans les barres d’outils présentes à l’écran. En effet, il existe de nombreuses barres d’outils, qui ne sont pas toutes affichées et sont de surcroît personnalisables (voir la commande Affichage/Barres d’outils…).
La façon la plus facile d’utiliser une commande, c’est, dans l’ordre :
– d’aller dans la barre de menus car la commande est écrite en toutes lettres : Affichage, c’est explicite !
– d’aller dans la barre d’outils (si la commande y est présente) car un petit dessin nous rappelle sa fonction. Parfois, il est très intuitif (l’imprimante pour imprimer), parfois, il est moins limpide : pour exécuter le programme, la convention est d’utiliser le symbole play (marche) des magnétoscopes et lecteurs hi-fi, à savoir le petit triangle. C’est évident… quand on le sait (allez voir dans le menu Exécution pour identifier l’icone). Quant à l’icone de l’explorateur d’objets…
– d’utiliser le raccourci clavier s’il existe. C’est le moins simple car le raccourci est souvent arbitraire. Pourquoi F2 pour afficher l’explorateur d’objets ? Eh bien ma foi, pourquoi pas ?
La façon la plus rapide d’utiliser une commande, c’est, dans l’ordre d’utiliser :
– le raccourci clavier s’il existe. Une ou deux touches à appuyer, et hop, la commande est appliquée ;
– l’icone de la barre d’outils. Il faut lâcher le clavier, prendre la souris et faire un clic ;
– la commande de la barre de menu, car il faut aller dans le bon menu (un clic) puis lancer la commande (un autre clic).
Résumons : icones et raccourcis clavier sont là pour vous simplifier la tâche ; servez-vous en !

Le travail sous VB

Une façon de voir les choses, c’est de vous dire que programmer sous VB revient à :
– pêcher dans la palette des composants les éléments (contrôles ou autre) dont on a besoin ;
– écrire du code ;
– exploiter quelques icones pour tester son programme puis l’enregistrer.
Évidemment, ces différentes étapes ne sont parfois pas si simples.

Ce n’est pas fini

J’insiste, à ce stade, vous ne savez rien faire et l’interface VB doit demeurer assez nébuleuse. Pour vous l’approprier, testez les différentes commandes pour voir ce qu’elles font et utilisez l’aide.
Une façon simple de recourir à l’aide pour un élément précis :
– dans un menu, mettez votre souris sur la commande qui vous intéresse (sans cliquer) et faites F1. Vous aurez directement l’aide de cette commande ;
– de même, mettez votre souris sur un contrôle de la boîte à outils et faites F1… vous obtiendrez une explication détaillée.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *