Kuinka lisätä resurssitiedostoja Delphi-suoritettaviin tiedostoihin

click fraud protection

Pelien ja muun tyyppisten sovellusten, jotka käyttävät multimediatiedostoja, kuten ääniä ja animaatioita, on joko oltava levittää ylimääräisiä multimediatiedostoja sovelluksen mukana tai upottaa tiedostot suoritettavan.

Sen sijaan, että levittäisit erillisiä tiedostoja sovelluksesi käyttöä varten, voit lisätä raakatiedot sovellukseesi resurssina. Tämän jälkeen voit hakea tietoja sovelluksestasi tarvittaessa. Tämä tekniikka on yleensä toivottavampi, koska se voi estää muita manipuloimasta näitä aputiedostoja.

Tämä artikkeli näyttää sinulle kuinka upottaa (ja käyttää) äänitiedostoja, videoleikkeitä, animaatioita ja yleisemmin kaikenlaisia ​​binaaritiedostoja Delphi-suoritettavaan ohjelmaan. Yleisimpiä tarkoituksia varten näet kuinka laittaa MP3-tiedosto sisällä a Delfoi exe.

Resurssitiedostot (.RES)

Kohdassa "Resurssitiedostot on tehty helpoksi"artikkeli sinulle esitettiin useilla esimerkeillä bittikarttojen, kuvakkeiden ja osoittimet resursseista. Kuten kyseisessä artikkelissa todettiin, voimme Image Editorilla luoda ja muokata resursseja, jotka koostuvat tällaisista tiedostoista. Nyt kun olemme kiinnostuneita erityyppisten (binaaritiedostojen) säilyttämisestä Delphi-suoritettavissa, joudumme käsittelemään resurssiskriptitiedostoja (.rc),

instagram viewer
Borland Resource Compiler työkalu ja muut.

Useiden binaaritiedostojen sisällyttäminen suoritettavaan tiedostoon koostuu 5 vaiheesta:

  1. Luo ja / tai kerää kaikki tiedostot, jotka haluat laittaa exe-tiedostoon.
  2. Luo resurssiskriptitiedosto (.rc), joka kuvaa sovelluksesi käyttämiä resursseja,
  3. Käännä resurssiskriptitiedosto (.rc) luodaksesi resurssitiedosto (.res),
  4. Yhdistä koottu resurssitiedosto sovelluksen suoritettavaan tiedostoon,
  5. Käytä yksittäistä resurssielementtiä.

Ensimmäisen vaiheen tulisi olla yksinkertainen, päätä vain, minkä tyyppiset tiedostot haluat tallentaa suoritettavaan tiedostoon. Tallennamme esimerkiksi kaksi .wav-kappaletta, yhden .ani-animaatioita ja yhden .mp3-kappaleen.

Ennen kuin siirrymme eteenpäin, tässä on muutama tärkeä lausunto rajoituksista työskennellessäsi resurssien kanssa:

  • Resurssien lataaminen ja purkaminen ei ole aikaa vievä toimenpide. Resurssit ovat osa sovellusten suoritettua tiedostoa, ja ne ladataan samanaikaisesti sovelluksen suorittaessa.
  • Kaikkia (vapaita) muistia voidaan käyttää resurssien lataamiseen / purkamiseen. Toisin sanoen, samanaikaisesti ladattujen resurssien lukumäärälle ei ole rajoituksia.
  • Tietysti resurssitiedostot kaksinkertaistavat suoritettavan koon. Jos haluat pienempiä suoritettavia tiedostoja, harkitse resurssien ja projektin osien sijoittamista dynaaminen linkkikirjasto (DLL) tai sen enemmän erikoistunut variaatio.

Katsotaan nyt, kuinka luodaan tiedosto, joka kuvaa resursseja.

Resurssiskriptatiedoston (.RC) luominen

Resurssiskriptitiedosto on vain yksinkertainen tekstitiedosto, jonka tiedostopääte on .rc ja jossa luetellaan resurssit. Skriptitiedosto on tässä muodossa:

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

RexName määrittelee joko yksilöllisen nimen tai kokonaisluvun (ID), joka identifioi resurssin. restype kuvaa resurssin tyypin ja ResFileName on yksittäisen resurssitiedoston täydellinen polku ja tiedostonimi.

Voit luoda uuden resurssiskriptitiedoston yksinkertaisesti seuraavasti:

  1. Luo uusi tekstitiedosto projektihakemistoon.
  2. Nimeä se AboutDelphi.rc: ksi.

Etsi AboutDelphi.rc-tiedostossa seuraavat rivit:

Clock WAVE "c: \ mysounds \ Projects \ clock.wav"
MailBeep WAVE "c: \ Windows \ media \ newmail.wav"
Cool AVI cool.avi
Johdanto RCDATA introsong.mp3

Skriptitiedosto yksinkertaisesti määrittelee resurssit. Annetun muodon mukaisesti AboutDelphi.rc-skripti luettelee kaksi .wav-tiedostoa, yhden .avi-animaation ja yhden .mp3-kappaleen. Kaikki .rc-tiedoston lauseet liittävät tietyn resurssin tunnistetun nimen, tyypin ja tiedostonimen. On noin tusina ennalta määritettyä resurssityyppiä. Näitä ovat kuvakkeet, bittikartat, osoittimet, animaatiot, kappaleet jne. RCDATA määrittelee yleiset tietolähteet. RCDATA antaa sinun sisällyttää raakatietoresurssin sovellukselle. Raakadataresurssit sallivat binaaritietojen sisällyttämisen suoraan suoritettavaan tiedostoon. Esimerkiksi yllä oleva RCDATA-käsky nimeää sovelluksen binaarisen resurssin Intro ja määrittää tiedoston introsong.mp3, joka sisältää kyseisen MP3-tiedoston kappaleen.

Huomaa: varmista, että sinulla on kaikki .rc-tiedostossa luetellut resurssit käytettävissä. Jos tiedostot ovat projektihakemistossa, sinun ei tarvitse lisätä koko tiedostonimeä. .Rc-tiedostossani .wav-kappaleet sijaitsevat * jossain * levyllä ja sekä animaatio että MP3-kappaleet sijaitsevat projektin hakemistossa.

Resurssitiedoston (.RES) luominen

Jotta resurssiskriptitiedostossa määritettyjä resursseja voidaan käyttää, meidän on koottava se .res-tiedostoon Borlandin resurssikääntäjällä. Resurssikääntäjä luo uuden tiedoston resurssiskriptitiedoston sisällön perusteella. Tällä tiedostolla on yleensä .res tiedostopääte. Delphi-linkittäjä muotoilee myöhemmin .res-tiedoston resurssiobjektitiedostoon ja linkittää sen sitten sovelluksen suoritettavaan tiedostoon.

Borlandin Resource Compiler-komentorivityökalu sijaitsee Delphi Bin -hakemistossa. Nimi on BRCC32.exe. Mene vain komentokehotteeseen ja kirjoita brcc32 ja paina sitten Enter. Koska Delphi \ Bin -hakemisto on polullasi, Brcc32-kääntäjä käynnistetään ja näyttää käyttöohjeet (koska sitä kutsuttiin ilman parametreja).

Käännä AboutDelphi.rc-tiedosto .res-tiedostoon suorittamalla tämä komento komentokehotteessa (projektihakemistossa):

BRCC32 TietojaDelphistä. RC

Oletuksena, kun resursseja kootaan, BRCC32 nimeää kootun resurssin (.RES) tiedoston .RC-tiedoston kannanimellä ja sijoittaa sen samaan hakemistoon kuin .RC-tiedosto.

Voit nimetä resurssitiedoston haluamallasi tavalla, kunhan sen tunniste on ".RES" ja tiedostonimi ilman laajennusta ei ole sama kuin yksikön tai projektin tiedostonimi. Tämä on tärkeää, koska oletuksena jokaisella Delphi-projektilla, joka kokoaa sovellukseksi, on resurssitiedosto, jolla on sama nimi kuin projektitiedostolla, mutta jonka tunniste on .RES. Parasta on tallentaa tiedosto samaan hakemistoon kuin projektitiedosto.

Sisältää (linkittäminen / upottaminen) resursseja suoritettaviin tiedostoihin

Kun .RES-tiedosto on linkitetty suoritettavaan tiedostoon, sovellus voi ladata resurssit ajon aikana tarvittaessa. Jotta resurssia tosiasiallisesti käytettäisiin, sinun on tehtävä muutama Windows API -soitto.

Artikkelin seuraamiseksi tarvitset uuden Delphi-projektin, jolla on tyhjä lomake (uusi oletusprojekti). Tietysti lisää {$ R AboutDelphi. RES} -direktiivi päälomakkeen yksikölle. On vihdoin aika nähdä, kuinka käyttää resursseja Delphi-sovelluksessa. Kuten edellä mainittiin, jotta voimme käyttää exe-tiedostoon tallennettuja resursseja, meidän on käsiteltävä sovellusliittymää. Delphin ohjetiedostoista, jotka ovat "resurssi" käytössä, löytyy kuitenkin useita menetelmiä.

Tutustu esimerkiksi LoadFromResourceName menetelmä TBitmap-objektiin. Tämä menetelmä purkaa määritetyn bittikarttaresurssin ja määrittää sille TBitmap-objektin. Tämä on * tarkalleen * mitä LoadBitmap API -kutsu tekee. Kuten aina, Delphi on parantanut API-toimintokutsua tarpeitasi paremmin.

Lisää nyt TMediaPlayer-komponentti lomakkeeseen (nimi: MediaPlayer1) ja lisää TB-painike (Button2). Anna OnClick-tapahtuman näyttää seuraavalta:

Yksi pieni * ongelma * on, että sovellus luo MP3-kappaleen käyttäjän koneelle. Voit lisätä koodin, joka poistaa tiedoston ennen sovelluksen lopettamista.

Purkaminen *???

Tietysti kaikki muut binaaritiedostotyypit voidaan tallentaa RCDATA-tyyppeinä. TRsourceStream on suunniteltu erityisesti auttamaan meitä purkamaan tällainen tiedosto suoritettavasta tiedostosta. Mahdollisuuksia on loputtomasti: HTML exe-tiedostossa, EXE exe-tiedostossa, tyhjä tietokanta exe-tiedostossa ja niin edelleen.

instagram story viewer