Kuidas lisada ressursifaile Delphi käivitatavatesse failidesse

Mängud ja muud tüüpi rakendused, mis kasutavad multimeediumfaile, näiteks helisid ja animatsioone, peavad samuti olema levitada täiendavaid multimeediumfaile koos rakendusega või manustada faile kausta käivitatav.

Rakenduse kasutamiseks eraldi failide levitamise asemel saate tooreid andmeid oma rakendusele ressursina lisada. Seejärel saate andmed oma rakendusest vajadusel hankida. See tehnika on üldiselt soovitavam, kuna see võib takistada teisi lisandmoodulifailidega manipuleerimast.

See artikkel näitab teile kuidas manustada (ja kasutada) helifaile, videoklippe, animatsioone ja üldiselt igasuguseid binaarfaile Delphi käivitatavasse faili. Kõige üldisemaks otstarbeks näete, kuidas panna MP3-fail sees a Delphi exe.

Ressursifailid (.RES)

Jaotises "Ressursifailid on lihtsaks tehtud"teile tutvustati artiklit, milles on toodud mitu näidet bitikaartide, ikoonide ja kursorid ressurssidest. Nagu selles artiklis öeldud, saame seda tüüpi failidest koosnevate ressursside loomiseks ja redigeerimiseks kasutada pildiredaktorit. Nüüd, kui oleme huvitatud erinevat tüüpi (binaarsete) failide hoidmisest Delphi käivitatavas failis, peame tegelema ressursiskriptifailidega (.rc),

instagram viewer
Borlandi ressursside koostaja tööriist ja muu.

Mitme binaarfaili kaasamine käivitatavasse koosneb viiest sammust:

  1. Looge ja / või koguge kõik failid, mida soovite exe-faili panna.
  2. Looge ressursiskriptifail (.rc), mis kirjeldab teie rakenduse kasutatavaid ressursse,
  3. Ressurssifaili (.res) loomiseks kompileerige ressursskriptifail (.rc),
  4. Lingi kompileeritud ressursifail rakenduse käivitatava failiga,
  5. Kasutage individuaalset ressursielementi.

Esimene samm peaks olema lihtne, lihtsalt otsustage, millist tüüpi faile soovite oma käivitatavasse faili salvestada. Näiteks salvestame kaks .wav-lugu, ühe .ani-animatsiooni ja ühe .mp3-loo.

Enne jätkamist on siin mõned olulised väited ressurssidega töötamise piirangute kohta:

  • Ressursside laadimine ja mahalaadimine ei ole aeganõudev toiming. Ressursid on osa rakenduste käivitatavast failist ja laaditakse samal ajal, kui rakendus töötab.
  • Ressursside laadimisel / tühjendamisel saab kasutada kogu (vaba) mälu. Teisisõnu, samal ajal laaditavate ressursside arv ei ole piiratud.
  • Muidugi, ressursifailid on kaks korda suuremad kui käivitatavad failid. Kui soovite väiksemaid käivitatavaid faile, kaaluge ressursside ja projekti osade paigutamist a-sse dünaamiliste linkide kogu (DLL) või selle veel spetsialiseeritud variatsioon.

Vaatame nüüd, kuidas luua ressursse kirjeldav fail.

Resursskriptifaili (.RC) loomine

Ressursskriptifail on lihtsalt lihtne tekstifail laiendiga .rc, mis loetleb ressursid. Skriptifail on järgmises vormingus:

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

RexName määrab kas kordumatu nime või täisarvu (ID), mis ressursi identifitseerib. ResType kirjeldab ressursi tüüpi ja ResFileName on üksikute ressursifailide täielik tee ja failinimi.

Uue ressursiskriptifaili loomiseks toimige lihtsalt järgmiselt.

  1. Looge oma projektide kataloogi uus tekstifail.
  2. Nimetage see ümber AboutDelphi.rc-ks.

Faili AboutDelphi.rc all on järgmised read:

Clock WAVE "c: \ mysounds \ projektid \ clock.wav"
MailBeep WAVE "c: \ windows \ media \ newmail.wav"
Lahe AVI cool.avi
RCDATA tutvustus introsong.mp3

Skriptifail lihtsalt määratleb ressursid. Pärast antud vormingut loetleb skript AboutDelphi.rc kaks .wav-faili, ühe .avi-animatsiooni ja ühe .mp3-laulu. Kõik .rc-faili avaldused seovad antud ressursi identifitseeriva nime, tüübi ja failinime. Seal on umbes tosin eelnevalt määratletud ressursitüüpi. Nende hulka kuuluvad ikoonid, bitikaardid, kursorid, animatsioonid, laulud jne. RCDATA määratleb üldised andmeressursid. RCDATA võimaldab teil lisada rakenduse jaoks töötlemata andmeallika. Töötlemata andmeallikad võimaldavad binaarsete andmete lisamise otse käivitatavasse faili. Näiteks nimetab ülaltoodud RCDATA avaldus rakenduse binaarset ressurssi Intro ja täpsustab faili introsong.mp3, mis sisaldab selle MP3-faili laulu.

Märkus. Veenduge, et kõik .rc-failis loetletud ressursid oleksid saadaval. Kui failid asuvad projektide kataloogis, ei pea te täielikku faili nime lisama. Minu .rc-failis .wav-laulud asuvad * kuskil * kettal * ja nii animatsioon kui ka MP3-laul asuvad projekti kataloogis.

Ressursifaili (.RES) loomine

Resursskriptifailis määratletud ressursside kasutamiseks peame selle Borlandi ressursikompilaatoriga kompileerima .res-faili. Ressursi kompilaator loob ressursskriptifaili sisu põhjal uue faili. Sellel failil on tavaliselt laiend .res. Delphi linker vormindab hiljem .res-faili ressursiobjektifailiks ja linkib selle seejärel rakenduse käivitatava failiga.

Borlandi ressursside kompilaatori käsurea tööriist asub kataloogis Delphi Bin. Nimi on BRCC32.exe. Lihtsalt minge käsureale ja tippige brcc32, seejärel vajutage sisestusklahvi. Kuna kataloog Delphi \ Bin asub teie rajas, kutsutakse Brcc32 kompilaatorisse ja see kuvab kasutusabi (kuna seda kutsuti parameetriteta).

Faili AboutDelphi.rc kompileerimiseks .res-faili käivitage see käsk käsuviipas (projektide kataloogis):

BRCC32 AboutDelphi kohta. RC

Vaikimisi nimetab BRCC32 kompileeritud ressursi (.RES) faili .RC-faili põhinimega ja paigutab selle samasse kataloogi .RC-failiga.

Võite ressursifailile nimetada ükskõik mida, kui sellel on laiend ".RES" ja ilma laiendita failinimi pole sama mis tahes üksuse või projekti failinimel. See on oluline, kuna vaikimisi on igal Delphi-projektil, mis kompileeritakse rakenduseks, ressursifail, millel on sama nimi kui projektifailil, kuid laiendiga .RES. Parem on salvestada fail samasse kataloogi kui projektifail.

Sealhulgas (linkimine / manustamine) ressursid käivitatavatele

Pärast seda, kui .RES-fail on lingitud käivitatava failiga, saab rakendus laadida oma ressursid jooksval ajal vastavalt vajadusele. Ressursi tegelikuks kasutamiseks peate tegema mõned Windows API kõned.

Artikli järgimiseks vajate uut Delphi projekti, mille a tühi vorm (vaikimisi uus projekt). Muidugi lisage {$ R AboutDelphi. RES} direktiiv põhivormi ühiku kohta. Lõpuks on aeg vaadata, kuidas Delphi rakenduses ressursse kasutada. Nagu eespool mainitud, peame exe-failis salvestatud ressursside kasutamiseks tegelema API-ga. Kuid Delphi abifailides, mis on "ressurss" lubatud, võib leida mitmeid meetodeid.

Näiteks kui heita pilk LoadFromResourceName meetod TBitmap objekt. See meetod ekstraheerib määratud bitmap ressursi ja määrab selle TBitmap objekti. See on * täpselt *, mida LoadBitmap API kõne teeb. Nagu alati, on Delphi täiustanud API funktsiooni kutset, et see teie vajadustele paremini vastaks.

Nüüd lisage TMediaPlayeri komponent vormi (nimi: MediaPlayer1) ja lisage TBnupp (Button2). Las OnClicki sündmus näeb välja selline:

Üks väiksem * probleem * on see, et rakendus loob MP3-laulu kasutajamasinas. Võite lisada koodi, mis kustutab selle faili enne rakenduse lõpetamist.

Kaevandamine *???

Muidugi, iga teist tüüpi binaarfaili saab salvestada RCDATA tüübina. TRsourceStream on loodud spetsiaalselt selleks, et aidata meil sellist faili käivitatavast failist eraldada. Võimalusi on lõputult: HTML exe-vormingus, EXE exe-vormingus, tühi andmebaas exe-vormingus jne ja nii edasi.

instagram story viewer