Les Snippets

Connexion

Obtention d'une ressource par son nom de catalogue

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/06/2010 04:03:39 et initié par erdna [Liste]
Date de mise à jour : 07/07/2010 10:03:34
Vue : 2693
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VB 2008



Langage : VB 2008
Date ajout : 26/06/2010
Posté par erdna [Liste]
DateMAJ : 07/07/2010
    'Example d'utilisation
    Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        ' Récupération de l'image de fond du formulaire 'Form1'
        ' comme image de fond du formulaire 'Form2'
        Me.BackgroundImage = Get_Resource_ByName("form1.$this.BackgroundImage")
    End Sub
    ''' <summary>Obtention d'une ressource en utilisant son nom</summary>
    ''' <param name="pName">Nom de la ressource précédé de l'object qui la contient suivit d'un point .</param>
    ''' <remarks>Pour d'autres type de ressources, il faudra modifier en conséquence.</remarks>
    Public Function Get_Resource_ByName(ByVal pName As String) As Image
        'Valeur qui sera retournée
        Dim lReturnValue As Image = Nothing
        'Dossier qui contient la ressource recherchée.
        Dim lRessourcesFolder As String
        Dim lvi1 As Integer = InStr(pName, ".")
        If lvi1 = 0 Then
            'Si absent le dossier standard de ressources de l'Assembly est utilisé.
            lRessourcesFolder = "resources"
        Else
            'Sinon on utilise le paramètre fourni
            lRessourcesFolder = Mid(pName, 1, lvi1 - 1)
            pName = Mid(pName, lvi1 + 1)
        End If
        'On obtient l'Assembly appelante qui contient le dossier de la ressource recherchée.
        Dim lAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetEntryAssembly 
        'Rechercher du dossier
        For Each resourceName In lAssembly.GetManifestResourceNames
            If resourceName.ToLower().EndsWith("." & lRessourcesFolder & ".resources") Then
                'Le dossier a été trouvé
                Dim lStream As System.IO.Stream = lAssembly.GetManifestResourceStream(resourceName)
                Dim reader As ResourceReader = New ResourceReader(lStream)
                Dim entry As DictionaryEntry
                'Recherche de la ressource
                For Each entry In reader
                    If entry.Key.ToLower() = pName.ToLower() Then
                        'La ressource a été trouvée.
                        lReturnValue = CType(entry.Value, Bitmap)
                        'Fin de la recherche de la ressouce.
                        Exit For
                    End If
                Next
                reader.Close()
                lStream.Close()
                'Fin de la recherche dans le dossier.
                Exit For
            End If
        Next
        Return lReturnValue
    End Function

Remarque :
Une méthode de remplacement pour 'GetManifestResourceStream'
qui retourne un valeur nulle, du moins dans les cas que j'ai essayé
en suivant la procédure prescrite.

Il faut inclure:

Imports System.Resources




Codes sources en rapport avec : Resources, Vb 2008, Getmanifestresourcestream

{Visual Basic, VB6, VB.NET, VB 2005} AFFICHER UN TEXTE OU DES RECTANGLES, ELLIPSES, POLYGONES, ETC... INCLINÉS EN VB 2008 (2 MÉTHODES POSSIBLES)
Comment afficher un texte incliné (angle paramétrable) ou une ellipse inclinée ou même faire une ani...

{Visual Basic, VB6, VB.NET, VB 2005} DEFORMÉE D'UNE POUTRE
en remerciement des sources trouvées ici graphique de la déformée d'une poutre à une distance x de ...

{Visual Basic, VB6, VB.NET, VB 2005} TRANSPORTER UNE DB ACCESS DANS UN DOCUMENT WORD
(Projet VB6) Le problème que j'avais était le suivant : Je devais créer un document Word et ses ...

{Visual Basic, VB6, VB.NET, VB 2005} XGBLENDERCOMPRESSOR
Spécifique pour les jeux blender mais bouts de code utiles :) Permet de choisir un fichier .blend e...

{Visual Basic, VB6, VB.NET, VB 2005} FURUKOO - VB2008
C'est un jeu de plateau en Ligne. Le principe est ici : http://www.chouettecarremagic.com/ J'ai e...

{Delphi} RESOURCES RÉSEAUX : LISTE DES DISPONIBILITÉS (ORDINATEURS, SERVEURS, ...)
Rechercher l'ensemble des ressources réseau disponible....

{C# / C#.NET} CALCUL FACTORIELLE DANS UNE FENETRE WINDOWS AVEC UN EXEMPLE DE RESSOURCES
Calcul de factorielle dans une fenêtre windows. Explication comment creer et utiliser un fichier .r...