Kako dodati datoteke virov v izvedbene datoteke Delphi

Igre in druge vrste aplikacij, ki uporabljajo večpredstavnostne datoteke, kot so zvoki in animacije, morajo biti porazdelite dodatne večpredstavnostne datoteke skupaj z aplikacijo ali vdelajte datoteke v izvedljiv.

Namesto da razdelite ločene datoteke za uporabo vaše aplikacije, lahko v svojo aplikacijo dodate surove podatke kot vir. Nato lahko poiščete podatke iz svoje aplikacije, kadar so potrebni. Ta tehnika je na splošno bolj zaželena, saj drugim preprečuje, da bi te datoteke z dodatki manipulirali.

Ta članek vam bo pokazal kako vdelati (in uporabljati) zvočne datoteke, video posnetke, animacije in na splošno kakršne koli binarne datoteke v izvedljiv Delphi. Za najbolj splošen namen boste videli, kako vstaviti MP3 datoteka znotraj a Delphi exe

Datoteke virov (.RES)

V "Datoteke z orodji so enostavno"članek vam je predstavil več primerov uporabe bitnih slik, ikon in kazalci iz virov. Kot je navedeno v tem članku, lahko z urejevalnikom slik ustvarimo in urejamo vire, ki so sestavljeni iz takšnih vrst datotek. Zdaj, ko nas zanima shranjevanje različnih vrst (binarnih) datotek znotraj izvršljive datoteke Delphi, se bomo morali spoprijeti z datotekami skriptov virov (.rc),

instagram viewer
Borland Resource Compiler orodje in drugo.

Vključitev več binarnih datotek v izvedljiv program vključuje 5 korakov:

  1. Ustvarite in / ali zberite vse datoteke, ki jih želite vstaviti v exe.
  2. Ustvarite datoteko skriptov virov (.rc), ki opisuje vire, ki jih uporablja vaša aplikacija,
  3. Sestavite datoteko skripta virov (.rc) in ustvarite datoteko virov (.res),
  4. Povežite sestavljeno datoteko virov z izvršljivo datoteko aplikacije,
  5. Uporabite posamezen element vira.

Prvi korak mora biti preprost, preprosto se odločite, katere vrste datotek želite shraniti v izvedljive datoteke. Na primer, shranili bomo dve .wav skladbi, eno .ani animacijo in eno .mp3 skladbo.

Preden nadaljujemo, je tu nekaj pomembnih trditev glede omejitev pri delu z viri:

  • Nalaganje in razkladanje virov ni zamudna operacija. Viri so del izvršljive datoteke aplikacij in se naložijo hkrati, ko se aplikacija zažene.
  • Za nalaganje / razkladanje virov se lahko uporablja ves (prosti) pomnilnik. Z drugimi besedami, hkrati ni omejitev glede števila naloženih virov.
  • Seveda datoteke datotek podvojijo velikost izvedljive datoteke. Če želite manjše izvedljive datoteke, razmislite o umeščanju virov in delov svojega projekta v knjižnica dinamičnih povezav (DLL) ali več specializirana različica.

Poglejmo zdaj, kako ustvariti datoteko, ki opisuje vire.

Ustvarjanje skriptne datoteke vira (.RC)

Datoteka skripta virov je preprosto preprosta besedilna datoteka s pripono .rc, ki navaja vire. Datoteka skripta je v tej obliki:

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

RexName poda bodisi unikatno ime bodisi celostno vrednost (ID), ki identificira vir. ResType opisuje vrsto vira in ResFileName je celotna pot in ime datoteke do posamezne datoteke z viri.

Če želite ustvariti novo datoteko skriptov virov, preprosto naredite naslednje:

  1. Ustvarite novo besedilno datoteko v imeniku projektov.
  2. Preimenujte jo v AboutDelphi.rc.

V datoteki AboutDelphi.rc naj bodo te vrstice:

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

Datoteka skripta preprosto definira vire. Po dani obliki skripta AboutDelphi.rc navaja dve datoteki .wav, eno .avi animacijo in eno .mp3 skladbo. Vsi stavki v .rc datoteki povezujejo identifikacijsko ime, tip in ime datoteke za določen vir. Obstaja približno ducat vnaprej določenih vrst virov. Sem spadajo ikone, bitne slike, kazalci, animacije, pesmi itd. RCDATA definira splošne vire podatkov. RCDATA vam omogoča, da v aplikacijo vključite surov podatkovni vir. Surovi viri podatkov omogočajo neposredno vključitev binarnih podatkov v izvršljivo datoteko. Zgornji stavek RCDATA na primer imenuje binarni vir aplikacije Intro in poda datoteko introsong.mp3, ki vsebuje skladbo za to datoteko MP3.

Opomba: preverite, ali so na voljo vsi viri, ki jih navajate v datoteki .rc. Če so datoteke znotraj direktorija projektov, vam ni treba navesti celotnega imena datoteke. V moji .rc datoteki .wav pesmi se nahajajo * nekje * na disku, tako animacija kot MP3 skladba pa se nahajata v imeniku projekta.

Ustvarjanje datoteke z datoteko (.RES)

Če želite uporabiti vire, opredeljene v datoteki skriptov virov, ga moramo sestaviti v .res datoteko z Borlandov zbirnik virov. Kompajler vira ustvari novo datoteko na podlagi vsebine datoteke skripta vira. Ta datoteka ima običajno pripono .res. Povezava Delphi bo pozneje preoblikovala datoteko .res v objektno datoteko vira in jo nato povezala z izvršljivo datoteko aplikacije.

Orodje ukazne vrstice Borland's Respi Compiler se nahaja v imeniku Delphi. Ime je BRCC32.exe. Preprosto pojdite v ukazni poziv in vnesite brcc32 in pritisnite Enter. Ker je imenik Delphi \ Bin v vaši poti, se prikliče prevajalnik Brcc32 in prikaže pomoč pri uporabi (saj je bila poklicana brez parametrov).

Če želite sestaviti datoteko AboutDelphi.rc v datoteko .res, izvedite ta ukaz v ukaznem pozivu (v imeniku projektov):

BRCC32 AboutDelphi. RC

Pri pripravi virov BRCC32 privzeto imenuje datoteko sestavljenega vira (.RES) z osnovnim imenom datoteke .RC in jo postavi v isti imenik kot datoteko .RC.

Datoteko virov lahko poimenujete karkoli želite, če ima razširitev ".RES" in ime datoteke brez razširitve ni isto kot katero koli ime datoteke ali projekta. To je pomembno, ker ima privzeto vsak projekt Delphi, ki se sestavi v aplikacijo, datoteko virov z istim imenom kot projektno datoteko, vendar s pripono .RES. Najbolje je, da datoteko shranite v isti imenik kot datoteko projekta.

Vključitev (povezovanje / vdelava) virov v izvedljive datoteke

Ko je datoteka .RES povezana z izvršljivo datoteko, lahko aplikacija naloži svoje vire v času izvajanja, če je to potrebno. Če želite dejansko uporabljati vir, boste morali klicati nekaj Windows API-jev.

Če želite slediti članku, boste potrebovali nov projekt Delphi z prazen obrazec (privzeti nov projekt). Seveda dodajte {$ R AboutDelphi. RES} direktiva za enoto glavne oblike. Končno je čas, da vidimo, kako uporabljati vire v aplikaciji Delphi. Kot že omenjeno, moramo za uporabo virov, shranjenih v exe datoteki, obravnavati API. Vendar pa je v datotekah pomoči Delphi mogoče najti več metod, ki so "vire" omogočene.

Na primer, oglejte si LoadFromResourceName metoda objekta TBitmap. Ta metoda izvleče določen vir bitne slike in mu dodeli objekt TBitmap. To je * točno * tisto, kar počne klic LoadBitmap API. Kot vedno je Delphi izboljšal klic funkcije API-ja, da bolje ustreza vašim potrebam.

Zdaj dodajte komponento TMediaPlayer v obrazec (ime: MediaPlayer1) in dodajte TButton (Button2). Naj dogodek OnClick izgleda tako:

Manjša težava * je, da aplikacija ustvari skladbo MP3 na uporabniškem računalniku. Lahko dodate kodo, ki to datoteko izbriše, preden se aplikacija preneha.

Pridobivanje *???

Seveda lahko vsako drugo vrsto binarne datoteke shranite kot vrsto RCDATA. TRsourceStream je zasnovan posebej, da nam pomaga izvleči takšno datoteko iz izvršljive datoteke. Možnosti so neskončne: HTML v exe, EXE v exe, prazna baza podatkov v exe-ju in tako naprej.

instagram story viewer