Site:  Cours VB.net  
4.19 Les 'Ressources'.

 

Ressources: Document informatique de toute nature (texte, image, son, programme).
 

Une ressource est une donnée non exécutable qui est déployée logiquement avec une application.

Les ressources sont un ensemble d'éléments,: images, icônes, textes(chaînes), sons, fichiers ou autres qui sont utilisées par le programme. Elles sont contenues dans un fichier .resx et dans un répertoire de ressource.

 

Intérêt des ressources?

Si j'ai une image à utiliser dans un contrôle, pourquoi ne pas la mettre directement dans la propriété de mon contrôle?

Vous créer cette image, si une semaine plus tard vous trouvez une image hyper meilleur, avec les ressources, vous n'avez plus qu'à la placer dans le répertoire Ressources à la place de votre précédente image. Vous recompilez et c'est fait.

Si vous avec une même image qui est utilisée à plusieurs endroit de votre application, avec les ressources, vous n'aurez qu'une seule ressource (donc diminution en taille de l'exe) et une facilité de maintenance: plus besoin d'effectuer la modification partout où l'image est utiliser.

Enfin si vous voulez écrire une version de votre exécutable en français et en Anglais, avec les ressources, il n'est pas nécessaire d' écrire 2 programmes, il suffit de faire 2 fichiers de ressources.

 

Les types de ressource?

Les types de ressources sont Chaînes, Images, Icônes, Audio, Fichiers et Autre. Chaînes est l'affichage par défaut.

Chaînes
Affiche des chaînes dans une grille de paramètres avec les colonnes Nom, Valeur et Commentaire . Vous pouvez accéder aux paramètres au moment de l'exécution via My.Resources en tant que String. Pour une description des colonnes dans cette grille, consultez la rubrique "Grille des paramètres" ci-après.
Images
Affiche tous les fichiers image, y compris les formats .bmp, .jpg .png et .gif. Ces fichiers sont exposés au moment de l'exécution en tant que Bitmap.
Icônes
Affiche les fichiers icône (* .ico) qui sont exposés en tant que Icon.
Audio
Affiche les fichiers audio, y compris les fichiers .wav, .wma et .mp3. Ces fichiers sont exposés en tant que tableaux d'octets. Le double-clic sur un élément audio permet de l'ouvrir et de le jouer dans Lecteur Windows Media.
Fichiers
Affiche tous les fichiers qui n'entrent pas dans les catégories précitées. Les éléments dans cet affichage peuvent être des fichiers texte exposés en tant que String ou des fichiers binaires exposés en tant que tableaux d'octets.
Autres
Affiche une grille de paramètres pour ajouter d'autres types qui prennent en charge la sérialisation de chaînes (par exemple, Font, Enum, Color et Point). La grille contient les colonnes suivantes : Nom, Type, Valeur et Commentaire.
 

Voir les ressources:

Pour voir les ressources, il faut aller dans les propriétés du projet: double cliquez sur MyProjet dans l'explorateur de solution ou menu 'Projet'=>'Propriétés de..', Onglet 'Ressources')

On voit immédiatement les Chaînes; il est possible de voir les autres types de ressources en déroulant la liste à gauche.

 

Ici on voit une ressource 'chaîne' qui se nomme 'toto' (c'est nul!!) et qui contient "2".

 

Ajouter des ressources:

1-Mettre du texte dans une ressources

Si nécessaire dérouler la liste à gauche et cliquez sur 'Chaînes'.

2 manières d'ajouter une chaîne:

Cliquez sur le bouton 'Ajouter une ressource' puis sur 'Ajouter une nouvelle chaîne'. le curseur se retrouve dans la zone de saisie du nouveau nom: tapez le nom puis la valeur.

Ou cliquez directement dans la zone  du nom sur la ligne '*', tapez le nom puis la valeur.

L'enregistrement est automatique.

2-Mettre le dessin dans les ressources:

Aller dans les ressources

Dérouler la liste à gauche pour y mettre 'Images' puis cliquer sur 'ajouter une ressource'; on vous demande le nom de la ressource (tapez par exemple 'button_blue'), vous vous trouver dans Paint, dessinez (ou collez) l'image de votre bouton. Puis menu 'Fichier'=>'Enregistrer': le dessin apparaît dans les ressources. Fermez Paint.

 

Ou se trouvent les ressources:

Dans l'explorateur de solutions, on voit bien le répertoire de ressources et la ressource qui vient d'être créee (le fichier Image1.bmp par exemple)

 

 

On peut d'ailleurs aller dans ce répertoire et modifier la ressource, remplacer le fichier par un autre, la modification est immédiatement mise à jour dans VB.

Vous créer une image, si une semaine plus tard vous trouvez une image hyper meilleur, vous n'avez plus qu'à la placer dans le répertoire Ressources à la place de votre précédente image.

 

Modifier une ressource

Une image par exemple:

Cliquez sur la ressource, puis cliquez avec le bouton droit; dans le menu:

Ouvrir: ouvre l'éditeur par défaut (Paint pour une image)

Ouvrir avec : permet de modifier la ressource avec un autre programme.

 

Utiliser une ressource dans le programme:

Les ressources  sont accessibles par leur nom dans la Classe My.Ressources.

 

Mettre le texte d'un ressource dans la barre de titre d'un formulaire:

Me.Text = My.Resources.Form1Title

 

Mettre une ressource image dans le plan BackGround d'un formulaire:

Me.BackgroundImage = My.Resources.Form1Background
 

Mettre une ressource image dans le plan BackGround d'un bouton:

MyButton.BackGroundImage= MonProgramme.My.Ressources.Ressources.button_Blue

(voir  3-3 pour un exemple complet)

 

Mettre une ressource icône comme icône d'un formulaire:

Me.Icon = My.Resources.MyIcon

 

Jouer un son qui est dans les ressources.
My.Computer.Audio.Play(My.Resources.Form1Greeting, AudioPlayMode.Background)

 

Ressources localisées:

On a parfois besoin d'avoir des ressources pour différentes langues. (Texte des boutons en Français ou en Anglais par exemple)

Pour chaque culture faire un fichier .resx

En fait, copier le fichier de ressources et attribuer au fichier de ressources le nouveau nom Resources.CultureSignature.resx 

Il semble que les fichiers de ressources de la langue par défaut soit dans le répertoire ressources avec l'extension .resx et que pour chaque  autre culture, un sous-répertoire soit nécessaire  (sous-répertoire nommé  'fr', 'en-us'..) Enfin dans ce sous répertoire, le fichier  se nomme monprogramme.Fr-fr.resx A vérifier!! 

Quand la culture de l'ordinateur change, le fichier de ressources correspondant est utilisé.

Exemple: ici on modifie la culture puis on utilise la ressource correspondante.

    Dim Currentculture As String = My.Application.UICulture.Name
    My.Application.ChangeUICulture("fr-FR")
    MsgBox(My.Resources.MyMessage)
    My.Application.ChangeUICulture(Currentculture)

 

Ressources liées ou incorporées

Les projets Visual Studio fournissent deux options différentes pour gérer les ressources : celles-ci peuvent être liées (par défaut) ou incorporées. S'il est possible d'avoir à la fois des ressources liées et incorporées dans un même projet, il est plus pratique dans la plupart des cas de choisir une option pour toutes les ressources du projet.

Les ressources liées sont stockées comme des fichiers dans le projet. Pendant la compilation, les données de ressources sont extraites des fichiers et placées dans le manifeste de l'application. Le fichier de ressources (.resx) de l'application stocke uniquement un chemin d'accès relatif ou un lien au fichier sur le disque.

Avec les ressources incorporées, les données de ressources sont stockées directement dans le fichier .resx dans une représentation textuelle des données binaires.

Dans l'un et l'autre cas, les données de ressources sont compilées dans le fichier exécutable.

Les ressources peuvent passer de la valeur « liées » à « incorporées » en modifiant la propriété Persistence du fichier de ressources.

Dans la fenêtre Propriétés, sélectionnez la propriété Persistance et affectez-lui la valeur Incorporé dans .resx.

Dans la fenêtre Propriétés, sélectionnez la propriété Persistance et affectez-lui la valeur Lié au moment de la compilation.

Les ressources incorporées sont le meilleur choix si vous devez partager des fichiers de ressources d'application (.resx) entre plusieurs projets. Par exemple, si vous disposez d'un fichier de ressources communes contenant des informations telles que les logos et les informations relatives aux marques de votre société, l'utilisation de ressources incorporées signifie que vous pouvez vous contenter de copier le fichier .resx et non les fichiers de données de ressources associés.

Vous ne pouvez pas modifier directement les ressources incorporées. Si vous tentez de modifier une ressource incorporée, un message vous invitant à convertir l'élément en ressource liée afin de la modifier s'affichera ; la conversion est recommandée mais facultative. Vous devez les exporter, effectuer vos modifications dans un programme externe, puis les réimporter dans votre projet.

Les ressources de type chaîne sont toujours incorporées et ne peuvent pas être modifiées. Les ressources de fichier sont toujours liées et ne peuvent pas être modifiées.

Comment cela marche?

Quand on ajoute par exemple une image aux ressources, VB crée (si ce n'est déjà fait), un répertoire Ressources dans votre projet. Puis il copie votre fichier image dans ce répertoire. Ensuite, il crée (ou modifie) un fichier .resX avec une référence vers le fichier image correspondant et une classe interne Ressources. Cette dernière possède des propriétés en lecture seules statiques qui retourne les ressources de votre fichier ressource :

A la compilation, ces images seront incluses dans votre exécutable.

Vous créer cette image, si une semaine plus tard vous trouvez une image hyper meilleur, vous n'avez plus qu'à la placer dans le répertoire Ressources à la place de votre précédente image. Vous recompilez et c'est fait.