Вложение файлов в качестве ресурсов в исполняемый делфи


Вы можете научиться создавать свое собственное программное обеспечение для любой ситуации с выбором <ем><Стронг>Требования к программному обеспечению развязали. Если вам нужно знать как вставлять иконки, курсоры, анимированные курсоры, растровые изображения, JPEG-изображения, звуковые файлы, текстовые файлы и любой другой файл в исполняемый Делфи, просто продолжайте читать!

вложение файлов в качестве ресурсов в Делфи исполняемый
вполне возможно, для размещения какой-либо файл в исполняемый файл, используя файлы ресурсов (*.РЭС). Некоторые виды ресурсов признаются API и может быть использован непосредственно. Другие просто приняты как двоичные данные и его до вас, чтобы использовать их. В этой статье мы рассмотрим примеры обоих видов.

чтобы создать файл ресурсов, мы начнем с исходного файла (*.РЦ), например именованные ресурсы.Ру, который представляет собой простой текстовый файл, который содержит записи ресурсов (фамилия, имя, класс и файл):<р> sample_bmp растрового образца.БМП и

на sample_ico значок образца.ико и

на sample_cur курсор образца.шавка, что

В sample_ani ANICURSOR образец.Ани и

на sample_jpg в формате JPEG sample.jpg в

на sample_wav волны образца.WAV и<р> sample_txt текст sample.txt
В имена ресурсов (sample_bmp, sample_ico и т. д.) являются произвольными. Такой ресурс может быть признан API-приложения (значок растрового изображения, курсора) или произвольным (в формате JPEG, волна, текст). Имена файлов указать файлы, которые будут включены в .Файл res (и позднее .ЕХЕ).

теперь нам нужно скомпилировать .RC-файл для получения .Файл res. Для этого мы можем использовать компилятора Borland ресурса (brcc32.exe), которые вы можете найти в папке Делфи БИН. Это простая утилита командной строки, которая ожидает, что имя исходного файла в качестве параметра:<р> C:\DELPHI\P0025>brcc32 ресурсы

на ресурсе Борланд компилятор версии 5.40 для

на Авторское право (C) 1990, 1999 корпорации Inprise. Все права защищены.

C:\DELPHI\P0025>_
и указывает компоновщику добавьте файл ресурсов в исполняемый файл, мы используем ресурс файл директивой ($R или $ресурсов) в наш Паскаль исходным кодом:<р> {$р ресурсов.рес}
и загрузка ресурсов в приложении-это легко "сталеплавильных" ресурсы, такие как растровые, иконки и курсор с окна API предоставляет функции (LoadBitmap, LoadIcon и LoadCursor соответственно), чтобы сделать ручки для этих элементов, что, например, мы можем присвоить свойство handle соответствующего объекта:<р> Рис1.Изображение.Растрового изображения.Ручка :=<р> LoadBitmap(hInstance, 'sample_bmp') <р> значок.Ручка := LoadIcon(hInstance, 'sample_ico') и

На экране.Курсоры[1] := LoadCursor(hInstance, 'sample_cur')
для больше альтернатив при загрузке изображения ресурсов, увидеть LoadImage API-интерфейс.

другие ресурсы немного сложнее управлять. Начнем с изображений в формате JPEG. Следующая функция использует TResourceStream, чтобы загрузить ресурс, как поток, который будет загружен в объект TJPEGImage:<р> функция GetResourceAsJpeg(с const resname: string значение): TJPEGImage <р> вар<р> поток: TResourceStream <р> начать<р> поток := TResourceStream.Создать(hInstance, ResName, 'в формате JPEG') <р> попробуй

В результате := TJPEGImage.Создать

В результате.LoadFromStream(поток) <р> наконец,

на поток.Бесплатно <р> конец <р> конец
к примеру:<р> вар<р> в формате JPG: TJPEGImage <р> начать<р> // ...<р> в формате JPG := GetResourceAsJpeg('sample_jpg') <р> Рис2.Изображение.Растрового изображения.Назначение(в формате JPG) и

в формате JPG.Бесплатно <р> // ...<р> конец
для WAV-файлов, нам нужен указатель на ресурс загружается в память, и текстовый файл нужен для загрузки ресурса в строку. Мы можем сделать это с помощью TResourceStream, но давайте рассмотрим пример с использованием API:<р> функция GetResourceAsPointer(ResName: pchar ресурс: pchar <р> вне Размер: длинное): указатель <р> вар<р> Инфоблока: HRSRC <р> GlobalMemoryBlock: HGLOBAL <р> начать<р> Инфоблока := метода findresource(hInstance, resname, ресурс), что

Если Инфоблока = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> Размер := SizeofResource(hInstance, Инфоблока), а

Если Размер = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> GlobalMemoryBlock := LoadResource(hInstance, Инфоблока) и

Если GlobalMemoryBlock = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> результат := LockResource(GlobalMemoryBlock) и

если результат = нулю, то<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> конец <р> функция GetResourceAsString(ResName: pchar ресурс: pchar): строке <р> вар<р> ResData: PChar <р> ResSize: длинное <р> начать<р> ResData := GetResourceAsPointer(resname, ресурс, ResSize) <р> метод setstring(итоге ResData, ResSize) <р> конец
как пример вызовов:<р> вар<р> sample_wav: указатель <р> процедура TForm1.FormCreate(Отправитель: TObject) <р> вар<р> Размер: длинное <р> начать<р> ...<р> sample_wav := GetResourceAsPointer('sample_wav', 'волна', размер) и

с наименованием "memo1".Линии.Текст := GetResourceAsString('sample_txt', 'текст') <р> конец
и как только мы получим волну ресурс загружается в память, мы можем играть в нее столько раз, сколько мы хотим с помощью API не sndplaysound объявлен в MMSystem блок:<р> процедура TForm1.Button1Click(Отправитель: TObject) <р> начать<р> не sndplaysound(sample_wav, SND_MEMORY или SND_NODEFAULT или SND_ASYNC) <р> конец
есть несколько ресурсов (например, шрифтов и анимационных курсоров), которые не могут быть использованы из памяти. Мы обязательно должны сохранить эти ресурсы во временный файл на диске и загружать их оттуда. Следующая функция позволяет экономить ресурс файл:<р> процедура SaveResourceAsFile(как const ResName: string значение ресурс: pchar <р> константным именем: строка) <р> начать<р> с TResourceStream.Создать(hInstance, ResName, ресурс) сделать

на попробовать.

на SaveToFile(именем) <р> наконец,

бесплатно <р> конец <р> конец
есть следующая функция делает использование предыдущей, чтобы сохранить ресурс во временный файл:<р> функция SaveResourceAsTempFile(с const ResName: строке <р> ресурс: pchar): строке <р> начать<р> результат := CreateTempFile <р> SaveResourceAsFile(ResName, ресурс, результат) <р> конец
при обсуждении функции CreateTempFile выходит за рамки данной статьи и ее реализация может быть прикреплен к новости.<р> следующая функция использует SaveResourceAsTempFile, чтобы сохранить анимированный курсор ресурс во временный файл, затем загружает курсор из файла с LoadImage и, наконец, временный файл удаляется. Функция возвращает дескриптор, возвращенный LoadImage:<р> функция GetResourceAsAniCursor(как const ResName: string значение): HCursor <р> вар<р> CursorFile: строке <р> начать<р> CursorFile := SaveResourceAsTempFile(ResName, 'ANICURSOR') <р> результат := LoadImage(0, PChar(CursorFile), IMAGE_CURSOR, 0,<р> 0, LR_DEFAULTSIZE или LR_LOADFROMFILE) <р> это(CursorFile) и

если результат = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> конец
как пример назвать так:

На экране.Курсоры[1] := GetResourceAsAniCursor('sample_ani') и

на форму form1.Курсор := 1
А, вот оно. Я надеюсь, что вы найдете ее полезной. Вы можете найти более подробную информацию о ресурсе файлов в библиотеке MSDN:<р> http://msdn.microsoft.com/library/en-us/winui/hh/winui/rc_6cs3.asp в

Вы можете найти полный исходный код этой статьи в архиве, который сопровождает Паскаль Бюллетень #25.









Вложение файлов в качестве ресурсов в исполняемый делфи


Вложение файлов в качестве ресурсов в исполняемый делфи : Несколько тысяч советов, которые сделают вашу жизнь проще.


Вы можете научиться создавать свое собственное программное обеспечение для любой ситуации с выбором <ем><Стронг>Требования к программному обеспечению развязали. Если вам нужно знать как вставлять иконки, курсоры, анимированные курсоры, растровые изображения, JPEG-изображения, звуковые файлы, текстовые файлы и любой другой файл в исполняемый Делфи, просто продолжайте читать!

вложение файлов в качестве ресурсов в Делфи исполняемый
вполне возможно, для размещения какой-либо файл в исполняемый файл, используя файлы ресурсов (*.РЭС). Некоторые виды ресурсов признаются API и может быть использован непосредственно. Другие просто приняты как двоичные данные и его до вас, чтобы использовать их. В этой статье мы рассмотрим примеры обоих видов.

чтобы создать файл ресурсов, мы начнем с исходного файла (*.РЦ), например именованные ресурсы.Ру, который представляет собой простой текстовый файл, который содержит записи ресурсов (фамилия, имя, класс и файл):<р> sample_bmp растрового образца.БМП и

на sample_ico значок образца.ико и

на sample_cur курсор образца.шавка, что

В sample_ani ANICURSOR образец.Ани и

на sample_jpg в формате JPEG sample.jpg в

на sample_wav волны образца.WAV и<р> sample_txt текст sample.txt
В имена ресурсов (sample_bmp, sample_ico и т. д.) являются произвольными. Такой ресурс может быть признан API-приложения (значок растрового изображения, курсора) или произвольным (в формате JPEG, волна, текст). Имена файлов указать файлы, которые будут включены в .Файл res (и позднее .ЕХЕ).

теперь нам нужно скомпилировать .RC-файл для получения .Файл res. Для этого мы можем использовать компилятора Borland ресурса (brcc32.exe), которые вы можете найти в папке Делфи БИН. Это простая утилита командной строки, которая ожидает, что имя исходного файла в качестве параметра:<р> C:\DELPHI\P0025>brcc32 ресурсы

на ресурсе Борланд компилятор версии 5.40 для

на Авторское право (C) 1990, 1999 корпорации Inprise. Все права защищены.

C:\DELPHI\P0025>_
и указывает компоновщику добавьте файл ресурсов в исполняемый файл, мы используем ресурс файл директивой ($R или $ресурсов) в наш Паскаль исходным кодом:<р> {$р ресурсов.рес}
и загрузка ресурсов в приложении-это легко "сталеплавильных" ресурсы, такие как растровые, иконки и курсор с окна API предоставляет функции (LoadBitmap, LoadIcon и LoadCursor соответственно), чтобы сделать ручки для этих элементов, что, например, мы можем присвоить свойство handle соответствующего объекта:<р> Рис1.Изображение.Растрового изображения.Ручка :=<р> LoadBitmap(hInstance, 'sample_bmp') <р> значок.Ручка := LoadIcon(hInstance, 'sample_ico') и

На экране.Курсоры[1] := LoadCursor(hInstance, 'sample_cur')
для больше альтернатив при загрузке изображения ресурсов, увидеть LoadImage API-интерфейс.

другие ресурсы немного сложнее управлять. Начнем с изображений в формате JPEG. Следующая функция использует TResourceStream, чтобы загрузить ресурс, как поток, который будет загружен в объект TJPEGImage:<р> функция GetResourceAsJpeg(с const resname: string значение): TJPEGImage <р> вар<р> поток: TResourceStream <р> начать<р> поток := TResourceStream.Создать(hInstance, ResName, 'в формате JPEG') <р> попробуй

В результате := TJPEGImage.Создать

В результате.LoadFromStream(поток) <р> наконец,

на поток.Бесплатно <р> конец <р> конец
к примеру:<р> вар<р> в формате JPG: TJPEGImage <р> начать<р> // ...<р> в формате JPG := GetResourceAsJpeg('sample_jpg') <р> Рис2.Изображение.Растрового изображения.Назначение(в формате JPG) и

в формате JPG.Бесплатно <р> // ...<р> конец
для WAV-файлов, нам нужен указатель на ресурс загружается в память, и текстовый файл нужен для загрузки ресурса в строку. Мы можем сделать это с помощью TResourceStream, но давайте рассмотрим пример с использованием API:<р> функция GetResourceAsPointer(ResName: pchar ресурс: pchar <р> вне Размер: длинное): указатель <р> вар<р> Инфоблока: HRSRC <р> GlobalMemoryBlock: HGLOBAL <р> начать<р> Инфоблока := метода findresource(hInstance, resname, ресурс), что

Если Инфоблока = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> Размер := SizeofResource(hInstance, Инфоблока), а

Если Размер = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> GlobalMemoryBlock := LoadResource(hInstance, Инфоблока) и

Если GlobalMemoryBlock = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> результат := LockResource(GlobalMemoryBlock) и

если результат = нулю, то<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> конец <р> функция GetResourceAsString(ResName: pchar ресурс: pchar): строке <р> вар<р> ResData: PChar <р> ResSize: длинное <р> начать<р> ResData := GetResourceAsPointer(resname, ресурс, ResSize) <р> метод setstring(итоге ResData, ResSize) <р> конец
как пример вызовов:<р> вар<р> sample_wav: указатель <р> процедура TForm1.FormCreate(Отправитель: TObject) <р> вар<р> Размер: длинное <р> начать<р> ...<р> sample_wav := GetResourceAsPointer('sample_wav', 'волна', размер) и

с наименованием "memo1".Линии.Текст := GetResourceAsString('sample_txt', 'текст') <р> конец
и как только мы получим волну ресурс загружается в память, мы можем играть в нее столько раз, сколько мы хотим с помощью API не sndplaysound объявлен в MMSystem блок:<р> процедура TForm1.Button1Click(Отправитель: TObject) <р> начать<р> не sndplaysound(sample_wav, SND_MEMORY или SND_NODEFAULT или SND_ASYNC) <р> конец
есть несколько ресурсов (например, шрифтов и анимационных курсоров), которые не могут быть использованы из памяти. Мы обязательно должны сохранить эти ресурсы во временный файл на диске и загружать их оттуда. Следующая функция позволяет экономить ресурс файл:<р> процедура SaveResourceAsFile(как const ResName: string значение ресурс: pchar <р> константным именем: строка) <р> начать<р> с TResourceStream.Создать(hInstance, ResName, ресурс) сделать

на попробовать.

на SaveToFile(именем) <р> наконец,

бесплатно <р> конец <р> конец
есть следующая функция делает использование предыдущей, чтобы сохранить ресурс во временный файл:<р> функция SaveResourceAsTempFile(с const ResName: строке <р> ресурс: pchar): строке <р> начать<р> результат := CreateTempFile <р> SaveResourceAsFile(ResName, ресурс, результат) <р> конец
при обсуждении функции CreateTempFile выходит за рамки данной статьи и ее реализация может быть прикреплен к новости.<р> следующая функция использует SaveResourceAsTempFile, чтобы сохранить анимированный курсор ресурс во временный файл, затем загружает курсор из файла с LoadImage и, наконец, временный файл удаляется. Функция возвращает дескриптор, возвращенный LoadImage:<р> функция GetResourceAsAniCursor(как const ResName: string значение): HCursor <р> вар<р> CursorFile: строке <р> начать<р> CursorFile := SaveResourceAsTempFile(ResName, 'ANICURSOR') <р> результат := LoadImage(0, PChar(CursorFile), IMAGE_CURSOR, 0,<р> 0, LR_DEFAULTSIZE или LR_LOADFROMFILE) <р> это(CursorFile) и

если результат = 0 тогда<р> поднимите исключение.Создать(SysErrorMessage(код последней ошибки)) <р> конец
как пример назвать так:

На экране.Курсоры[1] := GetResourceAsAniCursor('sample_ani') и

на форму form1.Курсор := 1
А, вот оно. Я надеюсь, что вы найдете ее полезной. Вы можете найти более подробную информацию о ресурсе файлов в библиотеке MSDN:<р> http://msdn.microsoft.com/library/en-us/winui/hh/winui/rc_6cs3.asp в

Вы можете найти полный исходный код этой статьи в архиве, который сопровождает Паскаль Бюллетень #25.


Вложение файлов в качестве ресурсов в исполняемый делфи

Вложение файлов в качестве ресурсов в исполняемый делфи : Несколько тысяч советов, которые сделают вашу жизнь проще.
рекомендовать друзьям
  • gplus
  • pinterest

Комментарий

Оставить комментарий

Оценивать