Ресурсы в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Ресурсы в Lazarus

Сообщение pupsik » 25.08.2016 17:21:40

Ну так приоткройте завесу тайны.
Вы о чём??? Я же не
грамотный совет от опытного пользователя
, а просто интересно стало. Да и за lazarus обидно:
Если заявлено, должно работать!
Вот и потратил время.

п.с.
Хотя, возможно, используя какие то изощрённые методы "онли винда" станет невозможной работа с res файлами в лине. Да и насчёт иных систем не уверен. Поэтому советую: дефолтом пользуйтесь :)

И кстати: эти фотки в учебниках часто мелькают. Хотя да...а: они не так популярны как фото девушки в шляпке...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Ресурсы в Lazarus

Сообщение sn-102 » 29.08.2016 02:12:19

Ну понятно, вроде. Дефолт так дефолт :) Получается работа RES не совсем до конца допилена. Жаль, конечно, что об этом сразу не пишут. Не тратил бы время.
sn-102
новенький
 
Сообщения: 16
Зарегистрирован: 24.08.2016 11:02:13

Re: Ресурсы в Lazarus

Сообщение alexs » 29.08.2016 12:22:43

LazRes генерт нормальные ресурсы.
Код: Выделить всё
    cmpBMP := TBitmap.Create;
    cmpBMP.LoadFromLazarusResource(lrClass.ClassName);

Вот пример кода - таким образом грузятся изображения компонент для LazReport-а.
Там куча методов для доступа к различного вида ресурсам.

Код: Выделить всё
    cmpBMP := TBitmap.Create;
    cmpBMP.LoadFromResourceName(HInstance, lrClass.ClassName);


Причём LazRes верно определяет тип файла по расширению при генерации (res или lrs).
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Ресурсы в Lazarus

Сообщение sn-102 » 01.09.2016 22:51:56

alexs писал(а):LazRes генерт нормальные ресурсы

Что и требовалось доказать - получается brcc32 генерит не нормальные ресурсы (для Lazarus'а). Спасибо за ценное замечание.
sn-102
новенький
 
Сообщения: 16
Зарегистрирован: 24.08.2016 11:02:13

Re: Ресурсы в Lazarus

Сообщение Ustas » 18.01.2017 09:45:18

Продолжу тему ресурсов...
Открыл старый проект, хотел посмотреть на него свежим взглядом, но прикомпиляции выдает ошибку:
Код: Выделить всё
lresources.pp(36,40) Fatal: Невозможно найти FPCAdds, используемый в LResources, несовместимый PPU=E:\lazarus\components\lazutils\lib\i386-win32\fpcadds.ppu, пакет LazUtils

К чему бы этто?
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Ресурсы в Lazarus

Сообщение Лекс Айрин » 18.01.2017 10:01:26

Ustas, пробовал перекомпилировать с очисткой?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ресурсы в Lazarus

Сообщение Ustas » 18.01.2017 10:33:35

Лекс Айрин писал(а):Ustas, пробовал перекомпилировать с очисткой?

Да.
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Ресурсы в Lazarus

Сообщение Ustas » 12.04.2017 13:30:45

ssadragon писал(а):http://wiki.freepascal.org/Lazarus_Resources/ru

Для меня остался неясным такой вопрос: если вместе с формой LFM формируется свой LRS, то как туда добавить свои картинки?
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Ресурсы в Lazarus

Сообщение zub » 12.04.2017 13:44:05

Конвертируешь свои картинки в lts с помощью lazarus/tools/lazres и подключаешь к проекту
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Ресурсы в Lazarus

Сообщение Ustas » 12.04.2017 15:29:10

Я подключаю подключаю свои ресурсы к проекту добавив в конце:
Код: Выделить всё
{I image.lrs}
, но как их от туда достать. Везде пишут пользоваться
Код: Выделить всё
LazarusResources.Find('image1').Value;
. Но функция возвращает строку. А
Код: Выделить всё
Image.Picture.LoadFromLazarusResource('image1')
у меня что то не работатет.
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Ресурсы в Lazarus

Сообщение Лекс Айрин » 12.04.2017 15:38:25

Ustas, а если подключить ресурс через параметры проекта?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ресурсы в Lazarus

Сообщение zub » 12.04.2017 16:26:31

>>. Но функция возвращает строку. А
Она и должна возвращать строку, т.к. lrs это "муляж" полноценных ресурсов строками.

>>у меня что то не работатет.
инетересно как это она "что то не работает" можно подробности?
хрустальный шарик говорит что нужно не ('image1') а так как ваша картинка называется внутри image.lrs. Вспоминаем как ее называли при создании image.lrs или открываем его в текстовом редакторе и смотрим - там всё просто и понятно
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Ресурсы в Lazarus

Сообщение Ustas » 12.04.2017 16:30:33

Лекс Айрин писал(а):подключить ресурс через параметры проекта

Выдает ошибку, что не найден ресур.
А вообще, функция Image.Picture.LoadFromLazarusResource('image1') работает. Я таким способом загрузил картинку в другое место - все получилось. У меня не получается загнать картинку в PopMenu, через функцию TMenuItem.GetBitmap, когда я его динамически создаю.
Будем искать, зря конетелил. Но все равно, спасибо.

Добавлено спустя 3 минуты 28 секунд:
Ustas писал(а):>>. Но функция возвращает строку. АОна и должна возвращать строку, т.к. lrs это "муляж" полноценных ресурсов строками.

А что дальше со стокой делать?
Ustas писал(а):>>у меня что то не работатет.инетересно как это она "что то не работает" можно подробности?хрустальный шарик говорит что нужно не ('image1') а так как ваша картинка называется внутри image.lrs. Вспоминаем как ее называли при создании image.lrs или открываем его в текстовом редакторе и смотрим - там всё просто и понятно

И предполагалось, что картинка так и называется image1
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: Ресурсы в Lazarus

Сообщение zub » 12.04.2017 17:00:42

если
>>LazarusResources.Find('image1').Value;
работает, а
>>Image.Picture.LoadFromLazarusResource('image1')
нет
то наверно картинка в неподдерживаемом формате?

>>А что дальше со стокой делать?
что душе угодно. лучше конечно применить штатные методы чтения из ресурса, если их нет - можно строку сохранить в поток или файл или читать напрямую из строки.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Ресурсы в Lazarus

Сообщение DYUMON » 12.04.2017 17:03:13

А зачем вам в popmenu картинка ? Можно же назначить меню imagelist потом в него загрузить картинки из ресурсов и все это будет отображаться.
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

Рейтинг@Mail.ru