Nouveau

Comment créer et utiliser des ressources dans Visual Basic 6

Comment créer et utiliser des ressources dans Visual Basic 6


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Une fois que les étudiants Visual Basic ont appris tout sur les boucles, les instructions conditionnelles, les sous-routines, etc., ils posent souvent la question suivante: "Comment puis-je 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 directement intégrés à votre projet Visual Basic pour une vitesse d'exécution maximale et un encombrement minimal, ainsi que pour le déploiement et le déploiement de votre application.

Les fichiers de ressources sont disponibles à la fois 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. N'oubliez pas que ce n'est pas le seul moyen d'utiliser des fichiers dans un projet VB, mais que cela présente de réels avantages. Par exemple, vous pouvez inclure un bitmap dans un fichier 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.

Création d'un fichier de ressources dans VB 6

Vous pouvez voir les ressources d’un projet dans VB 6 et VB.NET dans Explorateur de projet fenêtre (Solution Explorer 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 simple ressource à un projet et voyons comment procéder.

La première étape consiste à démarrer VB 6 en sélectionnant un EXE standard projet sur le Nouveau onglet dans la boîte de dialogue de démarrage. Maintenant, sélectionnez le Add-Ins option sur la barre de menu, puis le Gestionnaire de compléments… Cela ouvrira la boîte de dialogue Gestionnaire de compléments.

Faites défiler la liste et trouvez Editeur de ressources VB 6. Vous pouvez simplement double-cliquer dessus ou cocher la case correspondante. Chargé / déchargé case pour ajouter cet outil à votre environnement VB 6. Si vous pensez que vous utiliserez beaucoup l'éditeur de ressources, vous pouvez également cocher la case. Charge au démarrage et vous n'aurez plus à passer par cette étape à l'avenir. Cliquez sur "OK" et l'éditeur de ressources s'ouvre. Vous êtes prêt à ajouter des ressources à votre projet!

Allez dans la barre de menu et sélectionnez Projet puis Ajouter un nouveau fichier de ressources ou cliquez simplement avec le bouton droit de la souris sur l’éditeur de ressources et sélectionnez "Ouvrir" dans le menu contextuel qui s’affiche. 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. Par conséquent, accédez au dossier de votre projet et entrez le nom de votre nouveau fichier de ressources dans le répertoire. 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 un fichier "AboutVB.RES" sera créé et inséré dans l'éditeur de ressources.

VB6 Supports

VB6 prend en charge les éléments suivants:

  • Un éditeur de table de chaînes
    ("Modifier les tables de chaînes…")
  • Curseurs personnalisés - fichiers "CUR"
    ("Ajouter un curseur…")
  • Icônes personnalisées - fichiers "ICO"
    ("Ajouter une icône…")
  • Bitmaps personnalisés - fichiers "BMP"
    ("Ajouter un bitmap…")
  • Ressources définies par le programmeur
    ("Ajouter une ressource personnalisée…")

VB 6 fournit un éditeur simple pour les chaînes mais vous devez créer un fichier dans un autre outil pour tous les autres choix. Par exemple, vous pouvez créer un fichier BMP à l'aide du programme Windows Paint simple.

Chaque ressource du fichier de ressources est identifiée à VB 6 par unId et un nom dans l'éditeur de ressources. Pour rendre une ressource disponible pour votre programme, vous devez l'ajouter dans l'éditeur de ressources, puis utiliser l'ID et la ressource "Type" pour les désigner dans 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 une collection complète d'icônes dans le dossier…

C: Programmes Microsoft Visual Studio Commun Graphiques Icônes

Pour aller avec la tradition, nous allons sélectionner les quatre "éléments" du philosophe grec Aristote - Terre, Eau, Air et Feu - dans le sous-répertoire Elements. Lorsque vous les ajoutez, l'ID est attribué par Visual Studio (101, 102, 103 et 104) automatiquement.

Pour utiliser les icônes dans un programme, nous utilisons une fonction "Charger une ressource" de VB 6. Il existe plusieurs fonctions parmi lesquelles choisir:

  • LoadResPicture (index, format) pour les bitmaps, les icônes et les curseurs

Utiliser les constantes prédéfinies VBvbResBitmap pour les bitmaps,vbResIcon pour les icônes, etvbResCursor pour les curseurs pour le 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 présenté des icônes.

  • LoadResString (index) pour les cordes
  • LoadResData (index, format) pour tout jusqu'à 64K

Comme indiqué précédemment, cette fonction renvoie une chaîne avec les bits réels de la ressource. Ce sont les valeurs qui peuvent être utilisées pour le paramètre format ici:

1 ressource de curseur
2 ressources bitmap
3 ressources d'icônes
4 ressource de menu
5 boîte de dialogue
6 ressources de chaîne
7 Répertoire de polices
8 ressources de police
9 table accélérateur
10 ressources définies par l'utilisateur
12 Curseur de groupe
14 Icône de groupe

Puisque nous avons quatre icônes dans notre fichier de ressources AboutVB.RES, utilisonsLoadResPicture (index, format) pour les affecter à la propriété Picture d'un bouton de commande dans VB 6.

J'ai créé une application avec quatreOptionButton composants étiquetés Terre, Eau, Air et Feu et quatre événements Clic - un pour chaque option. Puis j'ai ajouté unBouton 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 contrôle 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 OptionButton Click):

Privé Sub Option1_Click ()
Command1.Picture = _
LoadResPicture (101, vbResIcon)
Command1.Caption = _
"Terre"
End Sub

Ressources personnalisées

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 dit Microsoft, "cela nécessite généralement l'utilisation d'appels API Windows". C'est ce que nous ferons.

L'exemple que nous allons utiliser 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. Par conséquent, si les valeurs que vous devez charger changent, vous devrez utiliser une approche plus traditionnelle, telle qu'un fichier séquentiel que vous ouvrez et lisez. L’API Windows que nous allons utiliser est leCopyMemory API. CopyMemory copie un 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 utilisateurs de VB 6 en tant que moyen ultra rapide de copier des données dans un programme.

Ce programme est un peu plus compliqué 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) comme long
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
hFile = FreeFile ()
Ouvrir _
"C: votre chemin de fichier MyLongs.longs" _
Pour binaire comme #hFile
Mettez #hFile,, longs
Fermer #hFile

Il est judicieux de garder à l'esprit que le fichier de ressources ne change pas, sauf si vous supprimez l'ancien et ajoutez-en 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 étapes décrites ci-dessus, mais cliquez sur le boutonAjouter une ressource personnalisée… au lieu de Ajouter une icône… Sélectionnez ensuite le fichier MyLongs.longs en tant que fichier à ajouter. Vous devez également modifier le "Type" de la ressource en cliquant dessus avec le bouton droit de la souris, en sélectionnant "Propriétés" et en modifiant le Type en "Longues". 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, déclarez d'abord l'appel de l'API Win32 CopyMemory:

Privé Déclarer Sous CopierMémoire _
Lib "kernel32" alias _
"RtlMoveMemory" (Destination comme aucune autre, _
Source comme aucune, longueur de ByVal aussi longue)

Ensuite, lisez le fichier de ressources:

Dim bytes () en octet
bytes = LoadResData (101, "longs")

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 (soit 4 octets par longueur):

ReDim longue (1 To (UBound (octets)) 4) As Long
CopyMemory longs (1), octets (0), UBound (octets) - 1

À présent, cela peut sembler une source de problèmes 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 besoin d'un grand ensemble de constantes pour initialiser le tableau, il s'exécuterait plus rapidement que toute autre méthode à laquelle je pourrais penser et vous n'auriez pas besoin d'avoir un fichier séparé inclus avec votre application pour le faire.


Video, Sitemap-Video, Sitemap-Videos