![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файлы ресурсов для компонентов [D7]
far © (2004-07-14 00:03:00)Мое почтение, уважаемые.
Не подскажите ли коим образом компонент может вытащить битмэп из файла ресурсов компонента *.dcr? B вообще можно ли в этот файл впихнуть какие-нибудь ресурсы, кроме иконки компонета? (То есть, впихнуть то конечно можно, но есть ли механизм доставания их оттуда?)
far (2004-07-14 14:28:00) [1]Да, похоже, что это верно. Все начало работать.
Спасибо, Reindeer Moss Eater. Ты понял в чем проблема, хотя я даже не смог правильно поставить вопрос :)
А я же грешным делом подумал, что раз LoadFromResourceName не видит ресурса в runtime, значит надо как-то по другому его в пакет включать, или как-то по другому к ресурсу обращаться :)
Спасибо всем.
Reindeer Moss Eater (2004-07-14 13:27:00) [2]У меня например dcr компонента включен в модуль содержащий только процедуру Register и компилирующийся в design пакет.
А res c иконками для панели индикатора включен в файл с определением класса компонента.
Reindeer Moss Eater (2004-07-14 13:15:00) [3]Аааааааа! Понял.
Все равно.
Не смешивай ресурсы битмапов нужные для IDE и ресурсы которые требуются в рантайме.
Компилируй их в разные пакеты.
Reindeer Moss Eater (2004-07-14 13:13:00) [4]У тебя что, юзерыисходники пишут?
far (2004-07-14 13:12:00) [5]>Reindeer Moss Eater © (14.07.04 12:38) [6]
>Какие-то извращенные понятия о красоте.
>А как это вообще относится к теме?
>Не хочешь директивы - редактируй свой готовый exe редактором >ресурсов после каждой сборки приложения.
>Вот красота тогда будет страшная. Спасет и мир и тебя.
А что, логично юзеру, пользуясь компонентами, думать еще и о ресурсных файлах, которые компоненты используют, и прописывать их директивами в своей проге?
Юрий Зотов (2004-07-14 12:56:00) [6]> far © (14.07.04 11:52) [2]
> Но если я делаю компоненту с ее собственным файлом ресурсов,
> то что мне указать в процедуре LoadFromResourceName вместо
> hInstance?
Именно HInstance и указывайте. Это получится хэндл либо пакета, либо приложения - но в любом случае это и будет нужный хэндл.
Посмотрите, как использует ресурсы TBitBtn. Там Вы найдете и директиву {$R Buttons.res}, и код загрузки строк и картинок.
Reindeer Moss Eater (2004-07-14 12:40:00) [7]Заодно погрохай все директивы
{$R *.dfm}
Reindeer Moss Eater (2004-07-14 12:38:00) [8]Думаю вставлять в код основного приложения директиву {$R} будет не очень красиво :)
Какие-то извращенные понятия о красоте.
А как это вообще относится к теме?
Не хочешь директивы - редактируй свой готовый exe редактором ресурсов после каждой сборки приложения.
Вот красота тогда будет страшная. Спасет и мир и тебя.
far (2004-07-14 12:35:00) [9]>Reindeer Moss Eater © (14.07.04 11:57) [4]
>Если нужны ресурсы иные нежели битмат компонента в палитре ide, >то логично иметь отдельный файл ресурса.
Хорошо, как этот файл использовать в приложении? Думаю вставлять в код основного приложения директиву {$R} будет не очень красиво :)
Reindeer Moss Eater (2004-07-14 11:57:00) [10]Если нужны ресурсы иные нежели битмат компонента в палитре ide, то логично иметь отдельный файл ресурса.
Reindeer Moss Eater (2004-07-14 11:55:00) [11]А зачем помещать ресурс компонента в рантайм пакет, если его место в design time пакетах?
far (2004-07-14 11:52:00) [12]Разумно...
Меня интересует, как потом можно сослаться на ресурсы из этих файлов в коде компонента?
Проблема у меня в том, что я не знаю, как мне сослаться именно на мой файл ресурсов. Если речь идет о файле ресурсов приложения *.res, то вытащить ресурс в приложении можно, сославшись на экземпляр приложения:
LoadFromResourceName( Instance: THandle;const ResName: string);
Это мне понятно.
Но если я делаю компоненту с ее собственным файлом ресурсов, то что мне указать в процедуре LoadFromResourceName вместо hInstance?
Алхимик (2004-07-14 00:26:00) [13]Непременно из *.dpr надо?
Я не заморачиваясь делаю ещё один(много) файл ресурсов.