Rappel : Ce cours est enseigné dans la
spécialité PISE du Master MECI (Université Paris 7)
par Christophe Darmangeat

Partie 9
Distribuer une application
1. Attention aux images !
Ce qui suit est de la plus haute importance ! (ce qui précédait aussi, d'ailleurs).
Lorsqu’on a recours dans une application VB à un fichier image (du type .bmp), par exemple, on pourrait penser qu’il suffit de poser un contrôle Image, et de définir sa propriété Picture (son contenu) en désignant l’image voulue. Malheureusement, ce n’est pas si simple. A l’exécution, il ne suffira pas en effet qu’on ait dit qu’on voulait tel fichier image dans tel contrôle. Il faudra aussi impérativement que ce fichier ait été préalablement chargé en mémoire.
Dès lors, il y a deux stratégies possibles.
  • on inclut directement les fichiers image dans l’application. C'est-à-dire que la propriété Picture du contrôle est réglée par défaut sur le fichier image à inclure. La conséquence est que lors de la compilation, VB repère que tel ou tel fichier image doit être inscrit dans un contrôle. Du coup, il embarquera in extenso le fichier image au sein de l'exécutable. Avantage, les graphiques feront partie à part entière de cet exécutable, et on est certain qu’ils seront présents quand on en aura besoin. Inconvénient, cela alourdit l’exécutable, parfois dans des proportions désastreuses.
    Moralité, on ne doit employer cette technique commode que pour les petits fichiers images, ne pesant pas lourd en termes de mémoire. C'est d'ailleurs ce que je me suis permis de faire pour les exercices livrés à votre pâture dans ce cours.
  • l'autre stratégie consiste à ne pas affecter par défaut la propriété Picture des contrôles, et on utilise la fonction LoadPicture dans le code. Cette fonction a pour rôle de charger au cours de l'exécution l'image dans le contrôle, en allant chercher le fichier adéquat sur le disque dur, le CD-ROM, etc. Dès lors, l'image ne sera pas incluse dans l'exécutable. Celui-ci se contentera, lorsqu'il tombera sur cette instruction, d'aller chercher le fichier pointé par cette ligne de code.
Cette dernière technique est certes un plus difficile à mettre en oeuvre, mais c'est la seule qui assure que l'exécutable restera dans des proportions raisonnables.
Elle implique deux choses :
  • Premièrement, il faut écrire le code en pointant correctement sur les fichiers images qui devront être situés dans un répertoire relatif à celui de l'application. Couramment, quel que soit le répertoire de l'exécutable, on constitue par exemple un sous-répertoire "images", dans lequel on stocke tous les fichiers images dont l'application a besoin. Le chargement des images s'accomplira via le code suivant (on suppose que le contrôle image s'appelle Tableau, et que le fichier est "VanGogh.jpg" :
    Chemin = App.Path
    If Right(Chemin, 1) <> "\" Then
      Chemin = Chemin & "\"
    Endif
    Chemin = Chemin & "images\"
    Tableau.Picture = LoadPicture(Chemin & "VGogh.jpg")
  • Mais, et c'est le deuxième point, pour que cette affaire continue à marcher lorsque je vais distribuer mon application sur d'autres machines, il faut que je puisse être certain que les fichiers images seront bien présents dans le bon répertoire, celui que pointe l'instruction LoadPicture (en l'occurence, dans un sous répertoire "images" de mon application. C'est entre autres à cela que sert un indispensable utilitaire, l'installateur automatique.


2. Utiliser l’installateur automatique
Votre application est enfin terminée. Elle est blonde, elle est belle, elle sent bon le sable chaud. Elle tourne sans erreurs et sans même remuer les oreilles. Bref, vous pouvez être fiers de vous.
Il ne reste plus qu'à faire profiter le reste de l'Humanité de votre Œuvre ; car ce serait trop dommage de l'en priver.
Commençons par le début : vous allez compiler le projet, créant ainsi un fichier *.exe, qui sera dorénavant repéré par une jolie icône (qui n'est autre que l'icône de la Form par défaut du projet). Evitez de laisser l'icône par défaut, il n'y a rien qui fasse davantage toc d'entrée de jeu.
Mais là, restent quelques détails à régler. En effet, si vous ne transmettez à quelqu'un que ce fichier exe, il risque de ne rien pouvoir en faire du tout, car peuvent vraisemblablement lui manquer :
  • les bibliothèques de VB, à savoir des fichiers de type DLL auxquels l'exécutable devra s'adresser  en permanence pour effectuer son travail. Sans ces bibliothèques, l'application refusera de tourner. Eh oui, un exécutable VB n'est jamais réellement autonome.
  • l'ensemble des fichiers "extérieurs" mais néanmoins indispensables à votre application, tels que les fichiers images vus il y a un instant, des éventuels fichiers texte, ou des sons, ou que sais-je encore, bref, tous les fichiers auxquels votre exécutable fera appel à un moment où à un autre, parce vous l'avez décidé.
S'il manque l'un ou l'autre de ces ingrédients, votre exécutable tournera dans le vide durant une infime fraction de seconde et se plantera avec un long ululement d’agonie. Terrifiant spectacle.
C'est pourquoi un logiciel spécial est prévu, l'assistant d'installation, qui va se charger de produire à partir de votre application un fichier apte à s'installer de manière propre sur une autre machine.
Il n'y a pour ainsi dire qu'à suivre les instructions.
  • Etape 1 :sélection du fichier projet
  • Etape 2 :choix du mode de déploiement (a priori, standard, "dossier unique")
  • Etape 3 :choix du lieu d'empaquetage (n'importe quel répertoire vierge fera l'affaire). Il s'agit du répertoire de votre machine dans lequel l'assistant va écrire le résultat de son travail.
  • Etape 4 :composants ActiveX : ignorez cette étape, sauf si vous avez inclus dans votre application des composants exotiques (voir partie 11).
  • Etape 5 :fichiers à inclure. C'est l'étape décisive. A priori, vous devez conserver tous les fichiers déjà proposés par l'assistant (dont les fameuses DLL nécessaires, qu'il repère tout seul). Mais surtout, c'est à cette étape que vous pouvez en ajouter d'autres, en particulier ces fichiers image, fichiers textes, etc. dont vous aurez auparavant dressé la liste complète, car l'assistant ne le fera pas pour vous). Cliquez sur "Ajouter" pour inclure tous ces autres fichiers nécessaires dans le paquet cadeau à fabriquer. Et précisez bien dans quel répertoire de destination ces fichiers devront être installés.
Le résultat de tout cela est un fichier auto-extractible (de type Setup) qui produira de merveilleuses installations Windows de type tout à fait professionnelles, et surtout, qui s'exécuteront sans erreurs.