Comment ajouter des fichiers de ressources dans les exécutables Delphi

Les jeux et autres types d'applications qui utilisent des fichiers multimédias tels que des sons et des animations doivent distribuer les fichiers multimédias supplémentaires avec l'application ou incorporer les fichiers dans le exécutable.

Plutôt que de distribuer des fichiers séparés pour votre application, vous pouvez ajouter les données brutes à votre application en tant que ressource. Vous pouvez ensuite récupérer les données de votre application lorsque cela est nécessaire. Cette technique est généralement plus souhaitable car elle peut empêcher les autres de manipuler ces fichiers de complément.

Cet article vous montrera comment intégrer (et utiliser) des fichiers audio, des clips vidéo, des animations et plus généralement tout type de fichiers binaires dans un exécutable Delphi. Pour le but le plus général, vous verrez comment mettre un Fichier MP3 à l'intérieur d'un Delphes EXE.

Fichiers de ressources (.RES)

Dans le "Fichiers de ressources simplifiés"article vous a présenté plusieurs exemples d'utilisation de bitmaps, d'icônes et de

instagram viewer
curseurs des ressources. Comme indiqué dans cet article, nous pouvons utiliser l'éditeur d'image pour créer et modifier des ressources qui se composent de ces types de fichiers. Maintenant, lorsque nous souhaitons stocker différents types de fichiers (binaires) dans un exécutable Delphi, nous devrons traiter des fichiers de script de ressources (.rc), le Borland Resource Compiler outil et autres.

L'inclusion de plusieurs fichiers binaires dans votre exécutable comprend 5 étapes:

  1. Créez et / ou collectez tous les fichiers que vous souhaitez mettre dans un exe.
  2. Créez un fichier de script de ressources (.rc) qui décrit les ressources utilisées par votre application,
  3. Compilez le fichier de script de ressource (.rc) pour créer un fichier de ressource (.res),
  4. Liez le fichier de ressources compilé au fichier exécutable de l'application,
  5. Utilisez un élément de ressource individuel.

La première étape doit être simple, il suffit de décider quels types de fichiers vous souhaitez stocker dans votre exécutable. Par exemple, nous allons stocker deux chansons .wav, une animation .ani et une chanson .mp3.

Avant de poursuivre, voici quelques déclarations importantes concernant les limitations lors de l'utilisation des ressources:

  • Le chargement et le déchargement des ressources n'est pas une opération longue. Les ressources font partie du fichier exécutable des applications et sont chargées en même temps que l'application s'exécute.
  • Toute la mémoire (libre) peut être utilisée lors du chargement / déchargement des ressources. En d'autres termes, il n'y a aucune limite sur le nombre de ressources chargées en même temps.
  • Bien sûr, les fichiers de ressources doublent la taille d'un exécutable. Si vous voulez des exécutables plus petits, pensez à placer les ressources et les parties de votre projet dans un bibliothèque de liens dynamiques (DLL) ou son plus variation spécialisée.

Voyons maintenant comment créer un fichier décrivant les ressources.

Création d'un fichier de script de ressources (.RC)

Un fichier de script de ressources est un simple fichier texte avec l'extension .rc qui répertorie les ressources. Le fichier de script est dans ce format:

ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2
...
ResNameX ResTYPEX ResFileNameX
...

RexName spécifie un nom unique ou une valeur entière (ID) qui identifie la ressource. ResType décrit le type de ressource et le ResFileName est le chemin d'accès complet et le nom de fichier du fichier de ressources individuel.

Pour créer un nouveau fichier de script de ressource, procédez simplement comme suit:

  1. Créez un nouveau fichier texte dans votre répertoire de projets.
  2. Renommez-le en AboutDelphi.rc.

Dans le fichier AboutDelphi.rc, disposez des lignes suivantes:

Horloge WAVE "c: \ mysounds \ projects \ clock.wav"
MailBeep WAVE "c: \ windows \ media \ newmail.wav"
Cool AVI cool.avi
Intro RCDATA introsong.mp3

Le fichier de script définit simplement les ressources. En suivant le format donné, le script AboutDelphi.rc répertorie deux fichiers .wav, une animation .avi et un morceau .mp3. Toutes les instructions d'un fichier .rc associent un nom, un type et un nom de fichier d'identification pour une ressource donnée. Il existe une douzaine de types de ressources prédéfinis. Il s'agit notamment des icônes, bitmaps, curseurs, animations, chansons, etc. Le RCDATA définit des ressources de données génériques. RCDATA vous permet d'inclure une ressource de données brutes pour une application. Les ressources de données brutes permettent l'inclusion de données binaires directement dans le fichier exécutable. Par exemple, l'instruction RCDATA ci-dessus nomme la ressource binaire de l'application Intro et spécifie le fichier introsong.mp3, qui contient le morceau de ce fichier MP3.

Remarque: assurez-vous que toutes les ressources répertoriées dans votre fichier .rc sont disponibles. Si les fichiers se trouvent dans le répertoire de vos projets, vous n'avez pas besoin d'inclure le nom de fichier complet. Dans mon fichier .rc, les chansons .wav sont situées * quelque part * sur le disque et l'animation et la chanson MP3 sont situées dans le répertoire du projet.

Création d'un fichier de ressources (.RES)

Pour utiliser les ressources définies dans le fichier de script de ressources, nous devons le compiler dans un fichier .res avec le compilateur de ressources de Borland. Le compilateur de ressources crée un nouveau fichier basé sur le contenu du fichier de script de ressources. Ce fichier a généralement une extension .res. L'éditeur de liens Delphi reformatera plus tard le fichier .res en un fichier objet ressource, puis le liera au fichier exécutable d'une application.

L'outil de ligne de commande du compilateur de ressources de Borland se trouve dans le répertoire Delphi Bin. Le nom est BRCC32.exe. Accédez simplement à l'invite de commande et tapez brcc32, puis appuyez sur Entrée. Étant donné que le répertoire Delphi \ Bin se trouve dans votre chemin, le compilateur Brcc32 est appelé et affiche l'aide à l'utilisation (car il a été appelé sans paramètres).

Pour compiler le fichier AboutDelphi.rc dans un fichier .res, exécutez cette commande à l'invite de commandes (dans le répertoire projets):

BRCC32 AboutDelphi. RC

Par défaut, lors de la compilation des ressources, BRCC32 nomme le fichier de ressource compilé (.RES) avec le nom de base du fichier .RC et le place dans le même répertoire que le fichier .RC.

Vous pouvez nommer le fichier de ressources comme vous le souhaitez, tant qu'il porte l'extension ".RES" et que le nom de fichier sans l'extension n'est pas le même que n'importe quel nom de fichier d'unité ou de projet. Ceci est important car, par défaut, chaque projet Delphi qui se compile dans une application possède un fichier de ressources portant le même nom que le fichier de projet, mais avec l'extension .RES. Il est préférable d'enregistrer le fichier dans le même répertoire que votre fichier de projet.

Inclusion (liaison / incorporation) de ressources aux exécutables

Une fois le fichier .RES lié au fichier exécutable, l'application peut charger ses ressources au moment de l'exécution selon les besoins. Pour utiliser réellement la ressource, vous devrez effectuer quelques appels API Windows.

Pour suivre l'article, vous aurez besoin d'un nouveau projet Delphi avec un formulaire BLANC (le nouveau projet par défaut). Bien sûr, ajoutez le {$ R AboutDelphi. Directive RES} à l'unité du formulaire principal. Il est enfin temps de voir comment utiliser les ressources dans une application Delphi. Comme mentionné ci-dessus, pour utiliser les ressources stockées dans un fichier exe, nous devons traiter avec l'API. Cependant, plusieurs méthodes peuvent être trouvées dans les fichiers d'aide Delphi qui sont activées pour les "ressources".

Par exemple, jetez un œil à la LoadFromResourceName méthode d'un objet TBitmap. Cette méthode extrait la ressource bitmap spécifiée et lui affecte l'objet TBitmap. C'est * exactement * ce que fait l'appel de l'API LoadBitmap. Comme toujours, Delphi a amélioré un appel de fonction API pour mieux répondre à vos besoins.

Maintenant, ajoutez le composant TMediaPlayer à une fiche (nom: MediaPlayer1) et ajoutez un TButton (Button2). Laissez l'événement OnClick ressembler à:

Un * problème * mineur est que l'application crée une chanson MP3 sur une machine utilisateur. Vous pouvez ajouter un code qui supprime ce fichier avant la fin de l'application.

Extraire *???

Bien sûr, tout autre type de fichier binaire peut être stocké en tant que type RCDATA. TRsourceStream est spécialement conçu pour nous aider à extraire un tel fichier d'un exécutable. Les possibilités sont infinies: HTML dans un exe, EXE dans exe, base de données vide dans un exe, et ainsi de suite.

instagram story viewer