Jak přidat zdrojové soubory do spustitelných souborů Delphi

Hry a další typy aplikací, které používají multimediální soubory, jako jsou zvuky a animace, musí být také distribuovat další multimediální soubory spolu s aplikací nebo vkládat soubory do spustitelný.

Spíše než distribuovat samostatné soubory pro použití vaší aplikace, můžete přidat surová data do aplikace jako prostředek. V případě potřeby pak můžete data z aplikace načíst. Tato technika je obecně žádoucí, protože může zabránit ostatním v manipulaci s těmito soubory doplňků.

Tento článek vám ukáže jak vložit (a používat) zvukové soubory, videoklipy, animace a obecně jakýkoli druh binárních souborů do spustitelného Delphi. Pro nejobecnější účel, uvidíte, jak dát Soubor MP3 uvnitř a Delphi exe.

Soubory zdrojů (.RES)

V "Snadné vytváření zdrojových souborů"článek, který vám byl představen s několika příklady použití rastrů, ikon a kurzory ze zdrojů. Jak je uvedeno v tomto článku, můžeme použít Editor obrázků k vytvoření a úpravě zdrojů, které se skládají z takových typů souborů. Nyní, když máme zájem o ukládání různých typů (binárních) souborů do spustitelného souboru Delphi, musíme se zabývat soubory skriptů prostředků (.rc),

instagram viewer
Borland Resource Compiler nástroj a další.

Zahrnutí několika binárních souborů do spustitelného souboru se skládá z 5 kroků:

  1. Vytvářejte a / nebo shromažďujte všechny soubory, které chcete vložit do exe.
  2. Vytvořte soubor skriptu prostředků (.rc), který popisuje zdroje používané vaší aplikací,
  3. Kompilujte soubor skriptu prostředků (.rc) a vytvořte soubor prostředků (.res),
  4. Propojte kompilovaný soubor prostředků do spustitelného souboru aplikace,
  5. Použijte jednotlivý prvek zdroje.

První krok by měl být jednoduchý, jednoduše se rozhodněte, jaké typy souborů chcete uložit do spustitelného souboru. Například uložíme dvě skladby WAV, jednu animaci .ani a jednu skladbu .mp3.

Než budeme pokračovat, uvádíme několik důležitých prohlášení týkajících se omezení při práci se zdroji:

  • Nakládání a vykládání zdrojů není časově náročná operace. Prostředky jsou součástí spustitelného souboru aplikací a jsou načteny současně s spuštěním aplikace.
  • Při načítání / vykládání zdrojů lze použít veškerou (volnou) paměť. Jinými slovy, počet zdrojů načtených současně není omezen.
  • Soubory zdrojů samozřejmě zdvojnásobí velikost spustitelného souboru. Pokud chcete menší spustitelné soubory, zvažte umístění zdrojů a částí vašeho projektu do knihovna dynamických odkazů (DLL) nebo jeho více specializovaná variace.

Podívejme se nyní, jak vytvořit soubor, který popisuje zdroje.

Vytvoření souboru skriptu zdrojů (.RC)

Soubor skriptu prostředků je pouze jednoduchý textový soubor s příponou .rc, který uvádí zdroje. Soubor skriptu je v tomto formátu:

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

RexName Určuje jedinečný název nebo celočíselnou hodnotu (ID), která identifikuje prostředek. ResType popisuje typ zdroje a ResFileName je úplná cesta a název souboru k jednotlivému zdrojovému souboru.

Chcete-li vytvořit nový soubor skriptu prostředků, jednoduše proveďte následující:

  1. Vytvořte nový textový soubor v adresáři projektů.
  2. Přejmenujte jej na AboutDelphi.rc.

V souboru AboutDelphi.rc zadejte následující řádky:

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

Soubor skriptu jednoduše definuje zdroje. Ve stanoveném formátu obsahuje skript AboutDelphi.rc dva soubory WAV, jednu animaci .avi a jednu píseň .mp3. Všechny příkazy v souboru .rc spojují identifikační název, typ a název souboru pro daný prostředek. Existuje asi tucet předdefinovaných typů zdrojů. Patří sem ikony, bitmapy, kurzory, animace, písně atd. RCDATA definuje obecné datové zdroje. RCDATA umožňuje zahrnout zdroj dat pro aplikaci. Zdroje prvotních dat umožňují zahrnutí binárních dat přímo do spustitelného souboru. Například příkaz RCDATA výše pojmenovává binární prostředek Intro aplikace a určuje soubor introsong.mp3, který obsahuje píseň pro tento soubor MP3.

Poznámka: Ujistěte se, že máte k dispozici všechny zdroje uvedené v souboru .rc. Pokud jsou soubory v adresáři projektů, nemusíte uvádět celý název souboru. V mém souboru .rc jsou skladby WAV umístěny * někde * na disku a animace i MP3 jsou umístěny v adresáři projektu.

Vytvoření souboru zdroje (.RES)

Chcete-li použít prostředky definované v souboru skriptu prostředků, musíme jej zkompilovat do souboru .res s kompilátorem zdrojů Borland. Kompilátor prostředků vytvoří nový soubor na základě obsahu souboru skriptu prostředků. Tento soubor má obvykle příponu .res. Linker Delphi později přeformátuje soubor .res do souboru objektu prostředků a poté jej spojí se spustitelným souborem aplikace.

Nástroj příkazového řádku kompilátoru zdroje Borland je umístěn v adresáři Delphi Bin. Název je BRCC32.exe. Jednoduše přejděte na příkazový řádek a zadejte příkaz brcc32 a stiskněte klávesu Enter. Protože adresář Delphi \ Bin je ve vaší cestě, vyvolá se kompilátor Brcc32 a zobrazí nápovědu k použití (protože byla volána bez parametrů).

Chcete-li kompilovat soubor AboutDelphi.rc do souboru .res, spusťte tento příkaz na příkazovém řádku (v adresáři projekty):

BRCC32 AboutDelphi. RC

Ve výchozím nastavení při kompilaci prostředků BRCC32 pojmenuje soubor kompilovaného prostředku (.RES) se základním názvem souboru .RC a umístí jej do stejného adresáře jako soubor .RC.

Soubor prostředků můžete pojmenovat cokoli, pokud má příponu „.RES“ a název souboru bez přípony není stejný jako název souboru nebo projektu. To je důležité, protože ve výchozím nastavení má každý projekt Delphi, který se kompiluje do aplikace, zdrojový soubor se stejným názvem jako soubor projektu, ale s příponou .RES. Nejlepší je uložit soubor do stejného adresáře jako soubor projektu.

Včetně (propojení / vložení) zdrojů do spustitelných souborů

Po propojení souboru .RES s spustitelným souborem může aplikace podle potřeby načíst své prostředky za běhu. Chcete-li zdroj skutečně použít, musíte provést několik volání rozhraní API systému Windows.

Abyste mohli tento článek sledovat, budete potřebovat nový projekt Delphi s prázdný formulář (výchozí nový projekt). Samozřejmě přidejte {$ R AboutDelphi. RES} na hlavní jednotku. Konečně je čas zjistit, jak používat zdroje v aplikaci Delphi. Jak bylo uvedeno výše, abychom mohli používat prostředky uložené v exe souboru, musíme se zabývat API. V souborech nápovědy Delphi však lze najít několik metod, které jsou povoleny „prostředky“.

Podívejte se například na LoadFromResourceName metoda objektu TBitmap. Tato metoda extrahuje zadaný prostředek bitmapy a přiřadí mu objekt TBitmap. Toto je přesně to, co volání API LoadBitmap API dělá. Jako vždy Delphi vylepšilo volání funkcí API, aby lépe vyhovovalo vašim potřebám.

Nyní přidejte součást TMediaPlayer do formuláře (název: MediaPlayer1) a přidejte TButton (Button2). Nechte událost OnClick vypadat takto:

Jedním z menších problémů * je, že aplikace vytvoří na uživatelském počítači skladbu MP3. Můžete přidat kód, který odstraní tento soubor před ukončením aplikace.

Extrahování *???

Samozřejmě lze každý jiný typ binárního souboru uložit jako typ RCDATA. TRsourceStream je navržen speciálně, aby nám pomohl extrahovat takový soubor ze spustitelného souboru. Možnosti jsou nekonečné: HTML v exe, EXE v exe, prázdná databáze v exe a tak dále.