Erőforrás-fájlok hozzáadása a Delphi végrehajtható fájlokhoz

A játékoknak és más típusú alkalmazásoknak, amelyek multimédiás fájlokat használnak, például hangok és animációk, szintén kötelesek lennie terjesztheti az extra multimédia fájlokat az alkalmazással együtt, vagy beágyazhatja azokat a végrehajtható.

Az alkalmazás használatához külön fájlok terjesztése helyett a nyers adatokat erőforrásként is hozzáadhatja az alkalmazáshoz. Ezután lekérheti az adatokat az alkalmazásból, amikor erre szükség van. Ez a technika általában kívánatosabb, mert megakadályozhatja mások manipulálását az add-in fájlokkal.

Ez a cikk megmutatja hangfájlok, videoklipek, animációk és általánosságban bármilyen bináris fájl beágyazása (és használata) a Delphi végrehajtható fájljában. A leg általánosabb célból láthatja, hogyan lehet egy MP3 fájl belül a Delphi alkalmazás.

Erőforrás fájlok (.RES)

Ban,-ben "Erőforrásfájlok egyszerűvé tettékmsgstr "" "a cikk bemutatta néhány példát a bitképek, ikonok és kurzorok forrásokból. A cikkben foglaltak szerint az Image Editor segítségével létrehozhatjuk és szerkeszthetjük az ilyen típusú fájlokat tartalmazó erőforrásokat. Ha különféle típusú (bináris) fájlokat szeretnénk tárolni egy Delphi végrehajtható fájlban, akkor az erőforrás szkript fájlokkal (.rc) kell foglalkoznunk,

instagram viewer
Borland Resource Compiler szerszám és egyéb.

Több bináris fájl beillesztése a futtatható fájlba 5 lépésből áll:

  1. Hozzon létre és / vagy gyűjtsön össze minden fájlt, amelyet egy exe fájlba szeretne helyezni.
  2. Hozzon létre egy erőforrás-szkript fájlt (.rc), amely leírja az alkalmazás által használt erőforrásokat,
  3. Fordítsa le az erőforrás szkript fájl (.rc) fájlt egy erőforrás fájl (.res) létrehozásához,
  4. Csatlakoztassa a lefordított erőforrás fájlt az alkalmazás futtatható fájljához,
  5. Használjon egyedi erőforrás elemet.

Az első lépésnek egyszerűnek kell lennie, egyszerűen el kell döntenie, hogy milyen típusú fájlokat szeretne tárolni a futtatható fájlban. Például tárolunk két .wav dalt, egy .ani animációt és egy .mp3 dalt.

Mielőtt továbbmegyünk, itt van néhány fontos nyilatkozat az erőforrásokkal való munka korlátozásaival kapcsolatban:

  • Az erőforrások betöltése és kirakása nem időigényes művelet. Az erőforrások az alkalmazások futtatható fájljának részét képezik, és az alkalmazás futtatásával egyidejűleg töltődnek be.
  • Az összes (szabad) memória felhasználható erőforrások be- és lerakására. Más szavakkal, az egyszerre betöltött erőforrások számát nem korlátozzák.
  • Az erőforrás fájlok természetesen megkétszerezik a végrehajtható fájlok méretét. Ha kisebb végrehajtható fájlokat szeretne, fontolja meg az erőforrások és a projekt egyes részeinek a elhelyezését dinamikus link könyvtár (DLL) vagy még több speciális variáció.

Most lássuk, hogyan lehet létrehozni egy fájlt, amely leírja az erőforrásokat.

Erőforrás-parancsfájl (.RC) létrehozása

Az erőforrás szkriptfájl egy egyszerű szövegfájl .rc kiterjesztéssel, amely felsorolja az erőforrásokat. A szkript fájl a következő formátumban van:

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

RexName vagy egyedi nevet, vagy egész értéket (ID) határoz meg, amely azonosítja az erőforrást. ResType az erőforrás típusát és a ResFileName az egyéni erőforrásfájl teljes elérési útja és fájlneve.

Új erőforrás-parancsfájl létrehozásához egyszerűen hajtsa végre a következőket:

  1. Hozzon létre egy új szöveges fájlt a projektek könyvtárában.
  2. Nevezze át a AboutDelphi.rc névre.

A AboutDelphi.rc fájlban adja meg a következő sorokat:

Órahullám "c: \ mysounds \ projektek \ clock.wav"
MailBeep WAVE "c: \ Windows \ media \ newmail.wav"
Cool AVI cool.avi
Intro RCDATA introsong.mp3

A szkriptfájl egyszerűen meghatározza az erőforrásokat. A megadott formátumot követve az AboutDelphi.rc szkript két .wav fájlt, egy .avi animációt és egy .mp3 dalt sorol fel. A .rc fájlban szereplő összes állítás azonosító nevet, típust és fájlnevet társít egy adott erőforráshoz. Körülbelül tucat előre meghatározott erőforrás-típus létezik. Ide tartoznak az ikonok, bitképek, kurzorok, animációk, dalok stb. Az RCDATA meghatározza az általános adatforrásokat. Az RCDATA lehetővé teszi, hogy nyers adatforrást tartalmazzon egy alkalmazáshoz. A nyers adatforrások lehetővé teszik a bináris adatok közvetlenül a futtatható fájlba történő beillesztését. Például a fenti RCDATA utasítás megnevezi az alkalmazás bináris erőforrását, az Intro-t, és meghatározza az introsong.mp3 fájlt, amely tartalmazza az adott MP3 fájl dalát.

Megjegyzés: Győződjön meg arról, hogy a .rc fájlban felsorolt ​​összes erőforrás rendelkezésre áll. Ha a fájlok a projekt könyvtárában vannak, akkor nem kell megadnia a teljes fájlnevet. Az .rc fájlban a .wav dalok * valahol * vannak a lemezen, és mind az animáció, mind az MP3 dal a projekt könyvtárában található.

Erőforrás fájl (.RES) létrehozása

Az erőforrás-szkriptfájlban megadott erőforrások használatához össze kell állítanunk .res fájlba a Borland Resource Compiler segítségével. Az erőforrás-fordító létrehoz egy új fájlt az erőforrás-parancsfájl tartalma alapján. Ez a fájl általában .res kiterjesztéssel rendelkezik. A Delphi linker később újraformatálja a .res fájlt erőforrás objektumfájlba, majd összekapcsolja egy alkalmazás futtatható fájljával.

A Borland Resource Compiler parancssori eszköz a Delphi Bin könyvtárban található. A név BRCC32.exe. Egyszerűen lépjen a parancssorba, írja be a brcc32 parancsot, majd nyomja meg az Enter billentyűt. Mivel a Delphi \ Bin könyvtár az elérési útján található, a Brcc32 fordító meghívásra kerül és megjeleníti a használati segítséget (mivel paraméterek nélkül hívták meg).

Az AboutDelphi.rc fájl egy .res fájlba történő fordításához hajtsa végre ezt a parancsot a parancssorban (a projektek könyvtárában):

BRCC32 AboutDelphi. RC

Alapértelmezés szerint az erőforrások összeállításakor a BRCC32 elnevezi a lefordított erőforrás (.RES) fájlt a .RC fájl alapnevével, és ugyanabba a könyvtárba helyezi, mint a .RC fájl.

Bármelyik megnevezheti az erőforrásfájlt, ha az kiterjesztése ".RES", és a kiterjesztés nélküli fájlnév nem ugyanaz, mint bármely egység vagy projekt fájlnév. Ez azért fontos, mert alapértelmezés szerint minden Delphi-projektnek, amely alkalmazásba fordul, van egy erőforrásfájl, amelynek neve ugyanaz a neve, mint a projektfájlnak, de .RES kiterjesztéssel. A legjobb, ha a fájlt ugyanabba a könyvtárba menti, mint a projekt fájlt.

Források beillesztése (összekapcsolása / beágyazása) a végrehajtható fájlokba

Miután a .RES fájl kapcsolódik a futtatható fájlhoz, az alkalmazás szükség szerint betöltheti erőforrásait futási időben. Az erőforrás tényleges használatához el kell végeznie néhány Windows API hívást.

A cikk követéséhez új Delphi projektre van szüksége a üres űrlap (az alapértelmezett új projekt). Természetesen adjuk hozzá a {$ R AboutDelphi fájlt. RES} irányelv a fő forma egységére. Végül itt az ideje megnézni, hogyan lehet felhasználni az erőforrásokat egy Delphi alkalmazásban. Mint fentebb említettük, az exe fájlban tárolt erőforrások felhasználásához az API-val kell foglalkoznunk. A Delphi súgófájljaiban azonban számos módszer található, amelyek "erőforrás" -hoz engedélyezve vannak.

Vessen egy pillantást például a LoadFromResourceName egy TBitmap objektum metódusa. Ez a módszer kibontja a megadott bittérképes erőforrást, és hozzárendeli a TBitmap objektumhoz. Ez pontosan *, amit a LoadBitmap API hívás végrehajt. Mint mindig, a Delphi továbbfejlesztette egy API funkcióhívást, hogy jobban megfeleljen az Ön igényeinek.

Most adja hozzá a TMediaPlayer összetevőt egy űrlaphoz (név: MediaPlayer1), és adjon hozzá egy TBgombot (Button2). Hagyja, hogy az OnClick esemény így néz ki:

Az egyik kisebb * probléma * az, hogy az alkalmazás MP3 dalt hoz létre a felhasználói gépen. Hozzáadhat egy kódot, amely törli azt a fájlt, mielőtt az alkalmazás leáll.

Kibontás???

Természetesen a bináris fájlok minden más típusa RCDATA típusként tárolható. A TRsourceStream kifejezetten azért készült, hogy segítsen nekünk az ilyen fájlok kibontásában egy végrehajtható fájlból. A lehetőségek végtelenek: HTML egy exe fájlban, EXE exe fájlban, üres adatbázis egy exe fájlban és így tovább.