Delphi – Ubacivanje drugih fajlova u .EXE fajl

U jednom od ranijih priloga govorili smo o resource-ima u Delphi-ju, kada smo u .EXE fajl ubacili zvučni .wav fajl. Na sličan način, u .EXE fajl možemo ubaciti bilo koji resurs, što je vrlo pogodno za zvukove i slike. Pored miltimedijalnih fajlova u izvršni Delphi-jev fajl možemo ubaciti i dodatne opcije, kao i cele programe. Kao primer, u jedan .EXE fajl ubacićemo Windows-ov editor teksta Notepad.exe (putanja „C:WINDOWSNOTEPAD.EXE“). Kada smo program ubacili u projekt, kasnije ga na ciljnom kompjuteru možemo raspakovati (ovo je vrlo zgodno za uprošćavanje instalacija vaše aplikacije). Priču ćemo ispričati u kratkim crtama, prvo što treba da uradimo je da iskompajliramo fajl Notepad.exe uz pomoć BRCC32 kompajlera.

Preko komandne linije, unesite sledeću komandu:


BRCC32 c:notepad.res c:WindowsNotepad.exe

Ovim smo Notepad.exe iskompajlirali u RES fajl. Nakon ovoga sledi uključivanje ovog novog resursa u Delphi projekt, korišćenjem $R kompajlerske instrukcije. Evo i primera:


{$R c:notepad.RES}

Za ekstrakciju ubačenog fajla iskoristićemo klasu „TResourceStream“. Jednostavno, po potrebi pozovite sledeću proceduru:


procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(NoviNazivRESa);
Res.Free;
end;

Pratite Krstaricu na www.krstarica.com