Свързване ресурси в изпълнимите Делфи

В тази статия ще се опитам да обясня как да се включат файлове в заявлението Delphi като различни видове ресурси, както и как да ги управлявате.

Можете да превърнете всеки файл в един изпълним файл, за да се използва като ресурс. Някои видове ресурси се признават и могат да бъдат използвани злоупотреба API. Други са просто взети като двоични данни. В тази статия ще разгледаме двата вида примери.

За да създадете файл ресурс ние започваме с източник файл * .RC. например, от името на Resources.rc. който съдържа видовете ресурси (име, клас и файл).

Имена на ресурси (sample_bmp, sample_ico и т.н.) са произволни. оглед на ресурсите може да бъде подкрепена от API (BITMAP, икони, курсори) или произволно (JPEG, WAVE, текст). Имената на файловете се определят на файловете, които ще бъдат включени в .RES. а по-късно .EXE.

Сега ние трябва да се компилира .RC файл, за да получите .RES файл. За да направите това, ние можем да използваме Borland Resource Compiler на (brcc32.exe).

Писането на командния ред, получаваме:

За да прикачите файл ресурс в нашия проект, ние използваме директива или.

Зареждане на подкрепящи ресурси (BITMAP, стрелки, иконка) е прост като Windows API ни дава LoadBitmap функция, LoadCursor, LoadIcon съответно за описания на тези елементи.

Други източници използват малко по-сложно. Нека да започнем с изображение JPEG. Ние ще използваме функция TResouceStream. Зареждането на ресурса като поток, който ще бъде зареден в TJpegImage обект.

За WAV файлове имаме нужда указател към ресурса зареден в паметта, както и за текстовия файл, ние трябва да се зареди на ресурса в един ред. Ние можем да направим това с помощта TResourceStream. но нека да разгледаме един пример, който използва приложния програмен интерфейс:

Веднага след като се зареди WAV ресурс в паметта, можем да го играе толкова пъти, колкото е необходимо, като се използва sndPlaySound. обяви в MMSystem модул.

Има някои ресурси (като например шрифтове, анимирани курсори), които не могат да се използват от паметта. Ние трябва да спаси тези ресурси на временен файл на диска и да ги зареди от там. Следната функция спестява ресурсен файл:

Следващият Функцията използва предишния, за да запазите ресурс във временен файл:

Следващият Функцията използва SaveResourceAsTempFile. за да спаси анимиран курсор на ресурсите на временен файл, а след това zagrizit този ресурс от файл с помощта LoadImage и след това изтрийте временен файл. Функцията връща манипулатор върнати от LoadImage.