Često puta igre i druge aplikacije moraju da sadrže određene multimedijalne fajlove, kao što su zvukovi i animacije. Ovi dodatni fajlovi mogu da se distribuiraju posebno od aplikacije, ili kao ugrađeni u izvršni deo aplikacije (znači, ne kao posebni fajlovi). U ovim prilikama jedno od najboljih rešenja je da te "sirove" podatke ubacite (ugradite) u aplikaciju kao "resource". Prethodna priča je samo uvod u sledeće redove iz kojih ćete videti kako da bilo koju vrstu fajlova (binarnih: zvuk, sliku, animaciju i sl.) smestite u Delphi izvršni fajl (.exe).
Za uključivanje nekog binarnog fajla i izvršni potrebno je uraditi sledeće:
- Kreirajte i sakupite sve fajlove koje želite da smestite u izvršni.
- Kreirajte resource script fajl (.rc), u kome će stajati opisi prethodnih fajlova.
- Kompajlirajte resource script fajl (.rc) u resource fajl (.res)
- Linkujte kompajlirani resource fajl sa izvršnim fajlom.
Resource script fajl je običan tekstualni fajl sa ekstenzijom .rc, u kome su izlistani izvorišni fajlovi. Format je sledeći:
Naziv1 ResTip1 ResNazivFajla1
Naziv2 ResTip2 ResNazivFajla2
...
NazivX ResTipX ResNazivFajlaX
Bitno je da nazivi izvora (NazivX) budu jedinstveni zbog njihovog pozivanja iz koda. ResTip opisuje tip ugrađenog fajla, a ResNazivFajla predstavlja potpunu putanju do fajla i sam naziv fajla. Evo i primera jednog takvog fajla:
Sat WAVE "c:\Windows\Media\clock.wav"
Anim AVI pokret.avi
Kada smo kreirali Resource script fajl potrebno je da ga iskompajliramo uz pomoć Borland"s Resource Compiler -a. Kompajler će kreirati izlazni fajl uobičajene ekstenzije .res. Kompajler je lociran u "Delphi\Bin" folderu, a sam naziv fajla kompajlera je "BRCC32.exe". Da bi iskompajlirali naš Resource script fajl napisaćemo u komandnoj liniji:
BRCC32 Izvor.RC
Po default-u dobićemo fajl "Izvor.RES", koji treba da snimite u folder, u kojem su i ostali fajlovi projekta.
Sledeći korak je linkovanje, tj. sve što je potrebno je da sledeću direktivu dodate u "Unit" vašeg projekta, i to odmah ispod form direktive:
{$R *.DFM}
{$R Izvor.RES}