Une fois que les étudiants en Visual Basic ont tout appris sur les boucles, les instructions conditionnelles et les sous-programmes, etc., l'une des questions suivantes est souvent posée: "Comment ajouter un bitmap, un fichier wav, un curseur personnalisé ou un autre effet spécial? " Une réponse est fichiers de ressources. Lorsque vous ajoutez un fichier à l'aide de fichiers de ressources Visual Studio, ils sont intégrés directement dans votre projet Visual Basic pour une vitesse d'exécution maximale et un encombrement minimal et le déploiement de votre application.
Les fichiers de ressources sont disponibles dans VB 6 et VB.NET, mais la façon dont ils sont utilisés, comme tout le reste, est assez différente entre les deux systèmes. Gardez à l'esprit que ce n'est pas la seule façon d'utiliser des fichiers dans un projet VB, mais cela présente de réels avantages. Par exemple, vous pouvez inclure un bitmap dans un Boîte d'image contrôler ou utiliser le mciSendString API Win32. "MCI" est un préfixe qui indique généralement une chaîne de commande multimédia.
Vous pouvez voir les ressources d'un projet dans VB 6 et VB.NET dans le Explorateur de projets (Explorateur de solutions dans VB.NET - ils ont dû le rendre un peu différent). Un nouveau projet n'en aura pas car les ressources ne sont pas un outil par défaut dans VB 6. Ajoutons donc une ressource simple à un projet et voyons comment cela se fait.
La première étape consiste à démarrer VB 6 en sélectionnant un EXE standard projet sur le Nouveau dans la boîte de dialogue de démarrage. Sélectionnez maintenant le Compléments dans la barre de menus, puis Gestionnaire de compléments… Cela ouvrira la boîte de dialogue Gestionnaire de compléments.
Faites défiler la liste et trouvez Éditeur de ressources VB 6. Vous pouvez simplement double-cliquer dessus ou mettre une coche dans le Chargé / déchargé pour ajouter cet outil à votre environnement VB 6. Si vous pensez que vous allez utiliser beaucoup l'éditeur de ressources, vous pouvez également cocher la case Charge au démarrage et vous n'aurez pas à refaire cette étape à l'avenir. Cliquez sur "OK" et l'éditeur de ressources s'ouvre. Vous êtes prêt à commencer à ajouter des ressources à votre projet!
Accédez à la barre de menus et sélectionnez Projet ensuite Ajouter un nouveau fichier de ressources ou faites simplement un clic droit dans l'éditeur de ressources et sélectionnez "Ouvrir" dans le menu contextuel qui apparaît. Une fenêtre s'ouvrira, vous demandant le nom et l'emplacement d'un fichier de ressources. L'emplacement par défaut ne sera probablement pas celui que vous souhaitez, alors accédez à votre dossier de projet et entrez le nom de votre nouveau fichier de ressources dans le Nom de fichier boîte. Dans cet article, je vais utiliser le nom "AboutVB.RES" pour ce fichier. Vous devrez confirmer la création du fichier dans une fenêtre de vérification et le fichier "AboutVB.RES" sera créé et rempli dans l'éditeur de ressources.
VB6 prend en charge les éléments suivants:
VB 6 fournit un éditeur simple pour les chaînes mais vous devez avoir un fichier créé dans un autre outil pour tous les autres choix. Par exemple, vous pouvez créer un fichier BMP à l'aide du simple programme Windows Paint.
Chaque ressource du fichier de ressources est identifiée dans VB 6 par un Id et un nom dans l'éditeur de ressources. Pour rendre une ressource disponible pour votre programme, vous devez les ajouter dans l'éditeur de ressources, puis utiliser l'ID et la ressource "Type" pour les pointer vers votre programme. Ajoutons quatre icônes au fichier de ressources et utilisons-les dans le programme.
Lorsque vous ajoutez une ressource, le fichier lui-même est copié dans votre projet. Visual Studio 6 fournit toute une collection d'icônes dans le dossier…
C: \ Program Files \ Microsoft Visual Studio \ Common \ Graphics \ Icons
Pour suivre la tradition, nous sélectionnerons les quatre "éléments" du philosophe grec Aristote - Terre, Eau, Air et Feu - dans le sous-répertoire Éléments. Lorsque vous les ajoutez, l'ID est attribué automatiquement par Visual Studio (101, 102, 103 et 104).
Pour utiliser les icônes dans un programme, nous utilisons une fonction VB 6 "Load Resource". Vous pouvez choisir parmi plusieurs de ces fonctions:
Utilisez les constantes prédéfinies VB vbResBitmap pour les bitmaps, vbResIcon pour les icônes, et vbResCursor pour les curseurs du paramètre "format". Cette fonction renvoie une image que vous pouvez utiliser directement. LoadResData (expliqué ci-dessous) renvoie une chaîne contenant les bits réels du fichier. Nous verrons comment l'utiliser après avoir démontré les icônes.
Comme indiqué précédemment, cette fonction renvoie une chaîne avec les bits réels dans la ressource. Ce sont les valeurs qui peuvent être utilisées pour le paramètre de format ici:
1 ressource de curseur
2 ressource Bitmap
3 Ressource d'icône
4 Ressource de menu
5 Boîte de dialogue
Ressource 6 chaînes
7 Ressource de répertoire de polices
8 Ressource de police
9 Table d'accélérateur
10 Ressource définie par l'utilisateur
12 Curseur de groupe
14 Icône de groupe
Étant donné que nous avons quatre icônes dans notre fichier de ressources AboutVB.RES, utilisons LoadResPicture (index, format) pour les affecter à la propriété Picture d'un bouton de commande dans VB 6.
J'ai créé une application avec quatre OptionButton composants étiquetés Terre, Eau, Air et Feu et quatre événements Click - un pour chaque option. Ensuite, j'ai ajouté un Bouton de commande et changé la propriété Style en "1 - Graphique". Cela est nécessaire pour pouvoir ajouter une icône personnalisée au bouton de commande. Le code de chaque OptionButton (et l'événement Form Load - pour l'initialiser) ressemble à ceci (avec l'ID et la légende modifiés en conséquence pour les autres événements Click d'OptionButton):
Sous-option privée1_Click ()
Le «gros problème» avec les ressources personnalisées est que vous devez normalement fournir un moyen de les traiter dans votre code de programme. Comme le déclare Microsoft, «cela nécessite généralement l'utilisation d'appels API Windows». Voilà ce que nous ferons.
L'exemple que nous utiliserons est un moyen rapide de charger un tableau avec une série de valeurs constantes. N'oubliez pas que le fichier de ressources est inclus dans votre projet, donc si les valeurs que vous devez charger changent, vous devrez utiliser une approche plus traditionnelle, comme un fichier séquentiel que vous ouvrez et lisez. L'API Windows que nous utiliserons est la CopyMemory API. CopyMemory copie le bloc de mémoire dans un autre bloc de mémoire sans tenir compte du type de données qui y est stocké. Cette technique est bien connue des VB 6'ers comme un moyen ultra rapide de copier des données à l'intérieur d'un programme.
Ce programme est un peu plus impliqué car nous devons d'abord créer un fichier de ressources contenant une série de valeurs longues. J'ai simplement assigné des valeurs à un tableau:
Dim long (10) Aussi longtemps
longs (1) = 123456
longs (2) = 654321
… et ainsi de suite.
Ensuite, les valeurs peuvent être écrites dans un fichier appelé MyLongs.longs en utilisant l'instruction VB 6 "Put".
Dim hFile As Long
C'est une bonne idée de se rappeler que le fichier de ressources ne change pas sauf si vous supprimez l'ancien et en ajoutez un nouveau. Donc, en utilisant cette technique, vous devrez mettre à jour le programme pour changer les valeurs. Pour inclure le fichier MyLongs.longs dans votre programme en tant que ressource, ajoutez-le à un fichier de ressources en suivant les mêmes étapes décrites ci-dessus, mais cliquez sur le Ajouter une ressource personnalisée… au lieu de l'icône Ajouter… Sélectionnez ensuite le fichier MyLongs.longs comme fichier à ajouter. Vous devez également modifier le "Type" de la ressource en cliquant avec le bouton droit sur cette ressource, en sélectionnant "Propriétés" et en changeant le Type en "longs". Notez qu'il s'agit du type de fichier de votre fichier MyLongs.longs.
Pour utiliser le fichier de ressources que vous avez créé pour créer un nouveau tableau, commencez par déclarer l'appel de l'API Win32 CopyMemory:
Private Declare Sub CopyMemory _
Lisez ensuite le fichier de ressources:
Dim octets () As Byte
Ensuite, déplacez les données du tableau d'octets vers un tableau de valeurs longues. Allouez un tableau pour les valeurs longues en utilisant la valeur entière de la longueur de la chaîne d'octets divisée par 4 (c'est-à-dire 4 octets par long):
ReDim longs (1 To (UBound (bytes)) \ 4) As Long
Maintenant, cela peut sembler très compliqué lorsque vous pouvez simplement initialiser le tableau dans l'événement Form Load, mais cela montre comment utiliser une ressource personnalisée. Si vous aviez un grand ensemble de constantes dont vous aviez besoin pour initialiser le tableau, il fonctionnerait plus rapidement que toute autre méthode à laquelle je peux penser et vous n'auriez pas besoin d'avoir un fichier séparé inclus avec votre application pour le faire..