Igre i druge vrste aplikacija koje koriste multimedijske datoteke poput zvukova i animacija moraju ih imati distribuirati dodatne multimedijske datoteke zajedno s aplikacijom ili ih ugrađivati u izvršna.
Umjesto da distribuirate odvojene datoteke za upotrebu vaše aplikacije, sirovim podacima možete dodati svoju aplikaciju kao resurs. Nakon toga možete preuzeti podatke iz aplikacije kada su potrebni. Ova je tehnika općenito poželjnija jer omogućuje drugima da manipuliraju tim datotekama.
Ovaj članak će vam pokazati kako ugraditi (i koristiti) zvučne datoteke, videoisječke, animacije i općenitije bilo koju vrstu binarnih datoteka u izvedbu Delphija. Najčešći ćete vidjeti kako staviti MP3 datoteka unutar a Delphi EXE.
Datoteke resursa (.RES)
U odjeljku "Datoteke resursa jednostavno"članak predstavljen vam je s nekoliko primjera upotrebe bitnih slika, ikona i pokazivači iz sredstava. Kao što je navedeno u tom članku, možemo koristiti uređivač slika za stvaranje i uređivanje resursa koji se sastoje od takvih vrsta datoteka. Sada, kada smo zainteresirani za spremanje različitih vrsta (binarnih) datoteka u izvršnu datoteku Delphija, morat ćemo se baviti datotekama skripti resursa (.rc),
Borland Resource Compiler alat i drugo.Uključivanje nekoliko binarnih datoteka u izvršnu datoteku sastoji se od 5 koraka:
- Stvorite i / ili prikupite sve datoteke koje želite staviti u exe.
- Napravite datoteku skripte resursa (.rc) koja opisuje one resurse koje koristi vaša aplikacija,
- Sastavite datoteku skripte resursa (.rc) kako biste stvorili datoteku resursa (.res),
- Povežite sastavljenu datoteku resursa u izvršnu datoteku aplikacije,
- Koristite pojedinačni element resursa.
Prvi korak trebao bi biti jednostavan, jednostavno odlučite koje vrste datoteka želite pohraniti u svoju izvedbu. Na primjer, pohranit ćemo dvije .wav pjesme, jednu .ani animaciju i jednu .mp3 pjesmu.
Prije nego što nastavimo, evo nekoliko važnih izjava o ograničenjima u radu s resursima:
- Utovar i istovar resursa nije dugotrajan postupak. Resursi su dio izvršne datoteke aplikacija i učitavaju se istovremeno s pokretanjem aplikacije.
- Sva (slobodna) memorija može se koristiti za umetanje / istovar resursa. Drugim riječima, ne postoje ograničenja u broju učitanih resursa istovremeno.
- Naravno, datoteke s resursima dvostruko su veće od izvršne datoteke. Ako želite manje izvršne datoteke, razmislite o stavljanju resursa i dijelova vašeg projekta u knjižnica dinamičnih veza (DLL) ili njegovo više specijalizirana varijacija.
Pogledajmo sada kako stvoriti datoteku koja opisuje resurse.
Izrada datoteke skripte resursa (.RC)
Datoteka skripte resursa je samo jednostavna tekstualna datoteka s ekstenzijom .rc koja popisuje resurse. Datoteka skripte je u ovom formatu:
ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2
...
ResNameX ResTYPEX ResFileNameX
...
RexName određuje jedinstveno ime ili cijelu vrijednost (ID) koja identificira resurs. ResType opisuje vrstu resursa i ResFileName je puni put i naziv datoteke do pojedinačne datoteke resursa.
Da biste stvorili novu datoteku skripte resursa, jednostavno napravite sljedeće:
- Stvorite novu tekstualnu datoteku u direktoriju projekata.
- Preimenujte ga u AboutDelphi.rc.
U datoteci AboutDelphi.rc ima sljedeće retke:
Sat WAVE "c: \ mysounds \ projects \ clock.wav"
MailBeep WAVE "c: \ windows \ media \ newmail.wav"
Cool AVI cool.avi
Intro RCDATA introsong.mp3
Datoteka skripte jednostavno definira resurse. Slijedom zadanog formata, skripta AboutDelphi.rc sadrži dvije .wav datoteke, jednu .avi animaciju i jednu .mp3 pjesmu. Sve izjave u .rc datoteci uključuju identificirajuće ime, vrstu i naziv datoteke za određeni resurs. Postoji desetak unaprijed definiranih vrsta resursa. Tu spadaju ikone, bitmape, kursori, animacije, pjesme itd. RCDATA definira generičke resurse podataka. RCDATA vam omogućuje da u program uključite sirov podatkovni resurs. Sirovi resursi podataka omogućuju uključivanje binarnih podataka izravno u izvršnu datoteku. Na primjer, gornja izjava RCDATA naziva binarni resurs aplikacije Intro i specificira datoteku introsong.mp3 koja sadrži pjesmu za tu MP3 datoteku.
Napomena: provjerite imate li na raspolaganju sve resurse koje ste naveli u .rc datoteci. Ako su datoteke unutar direktorija vaših projekata, ne morate imati puno ime datoteke. U mojoj .rc datoteci .wav pjesme se nalaze * negdje * na disku, a animacija i MP3 pjesma nalaze se u direktoriju projekta.
Izrada datoteke s resursima (.RES)
Da bismo koristili resurse definirane u datoteci skripte resursa, moramo je sastaviti u .res datoteci s Borlandovim sastavljačem resursa. Kompajler resursa stvara novu datoteku na temelju sadržaja datoteke skripte resursa. Ova datoteka obično ima .res proširenje. Delphi veznik će kasnije preoblikovati .res datoteku u objektnu datoteku resursa, a zatim je povezati s izvršnom datotekom aplikacije.
Alat naredbenog retka Borlandov kompajler resursa nalazi se u direktoriju Delphi Bin. Ime je BRCC32.exe. Jednostavno idite u naredbeni redak i utipkajte brcc32, a zatim pritisnite Enter. Budući da se direktorij Delphi \ Bin nalazi u vašem Path-u, poziva se prevoditelj Brcc32 i prikazuje pomoć pri korištenju (budući da je pozvana bez parametara).
Za sastavljanje datoteke AboutDelphi.rc u .res datoteku izvršite ovu naredbu u naredbenom retku (u direktoriju projekata):
BRCC32 AboutDelphi. RC
Prilikom sastavljanja resursa, BRCC32 imenuje sastavljenu datoteku resursa (.RES) s osnovnim imenom .RC datoteke i smješta je u istu direktoriju kao i .RC datoteka.
Možete imenovati datoteku resursa sve što želite, pod uvjetom da ima ekstenziju ".RES", a ime datoteke bez proširenja nije isto kao i bilo koja jedinica datoteke ili projekta. To je važno jer, po defaultu, svaki Delphi projekt koji se sastavlja u aplikaciju ima datoteku resursa s istim nazivom kao i projektnu datoteku, ali s ekstenzijom .RES. Najbolje je spremiti datoteku u isti direktorij kao i datoteku vašeg projekta.
Uključujući (povezivanje / ugradnju) resursa u izvršne datoteke
Nakon što se .RES datoteka poveže s izvršnom datotekom, aplikacija može po potrebi učitati svoje resurse. Za stvarno korištenje resursa morat ćete uputiti nekoliko Windows API poziva.
Da biste pratili članak, trebat će vam novi Delphi projekt s prazan obrazac (zadani novi projekt). Naravno dodajte {$ R AboutDelphi. RES} smjernica za jedinicu glavnog oblika. Konačno je vrijeme da vidimo kako koristiti resurse u Delphi aplikaciji. Kao što je već spomenuto, da bismo koristili resurse pohranjene u exe datoteci, moramo se pozabaviti API-jem. Međutim, nekoliko se datoteka može pronaći u datotekama pomoći za Delphi koje su omogućene "resursima".
Na primjer, pogledajte LoadFromResourceName metoda objekta TBitmap. Ova metoda izdvaja navedeni resurs bitne mape i dodjeljuje mu TBitmap objekt. To je * upravo * ono što radi LoadBitmap API poziv. Kao i uvijek, Delphi je poboljšao API funkcijski poziv kako bi bolje odgovarao vašim potrebama.
Sada, dodajte komponentu TMediaPlayer u obrazac (ime: MediaPlayer1) i dodajte TButton (Button2). Neka događaj OnClick izgleda ovako:
Manji problem * je što aplikacija stvara MP3 pjesmu na korisničkom stroju. Možete dodati kôd koji briše ovu datoteku prije nego što se aplikacija ukine.
Vađenje *???
Naravno, svaka druga vrsta binarne datoteke može se pohraniti kao RCDATA vrsta. TRsourceStream dizajniran je posebno kako bi nam pomogao da izvučemo takvu datoteku iz izvršne datoteke. Mogućnosti su beskrajne: HTML u exe-u, EXE u exe-u, prazna baza podataka u exe-u i tako dalje, i tako dalje.