Ресурсы
Модератор: Модераторы
Ресурсы
подскажите как удобнее и проще запихать ресурсы в бинарник(изображения,иконки,возможно звуки),чтобы потом подгружать к динамически созданым компонентам ?
grigoreo
Проще всего запихать примерно таким образом:
Файл ресурса откомпилируется автоматически.
Проще всего запихать примерно таким образом:
Код: Выделить всё
{$R файл_ресурса.rc}Файл ресурса откомпилируется автоматически.
Vadim писал(а):grigoreo
Проще всего запихать примерно таким образом:Код: Выделить всё
{$R файл_ресурса.rc}
Файл ресурса откомпилируется автоматически.
Хорошо Vadim а можете еще дать подсказочку каким кодом потом подгрузить в TBitmap к примеру мой ресурс подключеный таким образом,
а какой вариант еще есть?(ведь если не ошибаюсь данный способ будет работать только в Windows)
grigoreo
Как это будет выглядеть в Linux - не знаю, т.к. ресурсами в Linux никогда не интересовался.
Код: Выделить всё
Bitmap.Handle := LoadBitmap(hInstance, PChar(Идентификатор_картинки_в_ресурсе));Как это будет выглядеть в Linux - не знаю, т.к. ресурсами в Linux никогда не интересовался.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Код: Выделить всё
Bitmap.LoadFromResourceName('...')Vadim писал(а):grigoreo
Проще всего запихать примерно таким образом:Код: Выделить всё
{$R файл_ресурса.rc}
Файл ресурса откомпилируется автоматически.
А можно еще уточнить в какую часть кода вставить эту дериктиву
Без разницы. А вообще обычно вставляют после implementation 
Хорошо с Windows все понятно а под линуксом как хранить ресурсы? или остается по возможности распихивать их в компоненты изображения в тот же TImage , или отдельными файлами деражть(т.к rc файлы я так понимаю в линуксе не функционируют и не компилятся это чисто Windows момент)
Фанаты Линукса подскажите как ресурсы в исполняемом бинарнике хранить?
Фанаты Линукса подскажите как ресурсы в исполняемом бинарнике хранить?
- NXP
- постоялец
- Сообщения: 187
- Зарегистрирован: 02.01.2008 15:11:56
- Откуда: Воронеж
- Контактная информация:
grigoreo писал(а):а под линуксом как хранить ресурсы?
Ресурс - это фич WinAPI, и я бы не сказал, что хороший, особенно если ресурсов много и они жирные.
Включай картинки, иконки и тд. в компоненты, либо храни во внешних файлах.
Это разумно и полезно для ОЗУ
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Да все там нормально с ОЗУ. Секция ресурсов отображается в адресное пространство ровно так же, как и секция кода, и ни байта ОЗУ не занимает, если не считать всяких системных кэшей. Одинаково в винде и в линуксе.
grigoreo
В Линуксе действительно не принято упаковывать ресурсы в исполняемый файл, их хранят отдельно. Поддержка ресурсов в FPC/Linux - это исключение из правил, впрочем, достаточно приятное.
Но проблема состоит только в том, чтобы скомпилировать .rc в .res. Можно заменить {$r file.rc} на {$r file.res} и собирать .res вручную, с помощью виндового компилятора под wine, например. Благо ресурсы - вещь более-менее статическая и их не нужно пересобирать каждый раз вместе с кодом.
grigoreo
В Линуксе действительно не принято упаковывать ресурсы в исполняемый файл, их хранят отдельно. Поддержка ресурсов в FPC/Linux - это исключение из правил, впрочем, достаточно приятное.
Но проблема состоит только в том, чтобы скомпилировать .rc в .res. Можно заменить {$r file.rc} на {$r file.res} и собирать .res вручную, с помощью виндового компилятора под wine, например. Благо ресурсы - вещь более-менее статическая и их не нужно пересобирать каждый раз вместе с кодом.
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Насколько мне известно windres есть и под linux и под osx.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Windres делает 2 преобразования: .rc -> .res и .res -> .o
Формат .res одинаковый для 32 и 64 бит, а второе преобразование делается с помощью fpcres из комплекта поставки, который с 64 бит вроде как дружит. Так что можно обойтись 32-битным windres.
Формат .res одинаковый для 32 и 64 бит, а второе преобразование делается с помощью fpcres из комплекта поставки, который с 64 бит вроде как дружит. Так что можно обойтись 32-битным windres.
