Лучший способ сделать значок компонента в Delphi XE, используя только встроенные инструменты
В Delphi 7 включена программа редактора изображений, которая может читать и записывать файлы .dcr
, которые являются только двоичными файлами ресурсов (.res
files) с другим расширением, которое по соглашению указывает, что файл .dcr содержит скомпилированный ресурс с именованными ресурсами растрового изображения, которые имеют имена, соответствующие вашим именам компонентов (битмап-ресурс с именем TMYCOMPONENT для компонента с именем TMyComponent). Эти растровые изображения - это то, где "значки" использовались для размещения значка на палитре компонентов delphi, а также на вашей форме или модуле данных, когда вы бросаете на него невизуальный компонент, из.
Перейдите на 10 лет в Delphi XE, и я пытаюсь создавать значки компонентов, используя растровый файл, и файл RC, и иметь эту сборку в файле .DCR как часть среды Delphi.
Это должно быть просто вопрос добавления файла .Rc и объявления, подобного этому в файле .dpk(source package), например:
{$R mypackageicons.rc mypackageicons.dcr}
Образец .rc файла, содержащий значок компонента:
// COMPONENT ICON RESOURCES
TMYCOMPONENT BMP "TMYCOMPONENT.BMP"
Однако я не могу заставить это работать. Кажется, что вы получаете некоторые странные ошибки RLINK32, а IDE вылетает в borlandmm.dll, когда я пытаюсь:
[DCC Error] E2161 Error: RLINK32: Unsupported 16bit resource in file "C:\temp\compicon\COMPONENTICONS.rc"
[DCC Fatal Error] F2084 Internal Error: AV21515155-W06000D07-1
Этот файл растрового изображения представляет собой простой размер 256-битного размера bmp размером 24x24 пикселя, и я также попробовал 16 цветовых растровых изображений без везения. Мне кажется, что программа ImageEdit - единственный способ узнать, что я могу использовать для создания значков компонентов Delphi.
Чего я упускаю?
Обновление:. Внешние инструменты - отличное решение для людей, которые не имеют доступа к редактору изображений Delphi 7, и могут быть на самом деле лучше, но я бы предпочел сделать это, используя только что поставляется с Delphi, потому что кажется, что это должно быть возможно, используя только одно объявление {$ R}, текстовый файл и файл BMP, сделанный с помощью кисти. Разумеется, они не пропустили способ создания значков компонентов с помощью этого большого инструмента разработчика на 1,5 гигабайта!.. update2: И есть способ; Руди В. нашел это.
Ответы
Ответ 1
Я использовал и имел большой успех:
Update
Я просто попробовал следующее, в XE, и был успешным.
- Я создал новый компонент TNewAnimate в NewAnimates.pas.
- Я добавил TNewAnimate.pas в dclusr.dpk.
- Я добавил растровое изображение (называемое TMRUComboBox.bmp, у меня просто было все равно) с помощью Project → Ресурсы и изображения... в .dpk и дал ему имя TNEWANIMATE.
- Я снова установил dclusr.dpk.
Исходный файл для dclusr.pdk получил новую запись {$R *.dres}
(обратите внимание на расширение). Я мог видеть TNewAnimate в палитре Samples с глифом в TMRUComboBox.bmp.
Я нашел dclusr.dres в том же каталоге, что и dclusr.dpk(который обычно находится под C:\Program Files, но не в моей настройке). Я попытался открыть его с помощью редактора ресурсов XN, но он отказался открыть его с загадочным сообщением об ошибке. Кажется, это не обычный файл .res.
![enter image description here]()
Ответ 2
Попробуйте Редактор ресурсов. Хорошая замена для старого редактора изображений.
Ответ 3
Сначала добавьте файл 'mypackageicons.rc' в проект, это приведет к 'mypackageicons.res' во время компиляции (см. соответствующий SO ответ на вопрос "Включая ресурс файл в проекте с помощью файла .RC, а не файла .RES" ).
Также включите {$R mypackageicons.res mypackageicons.dcr}
в компонентный блок (или в .dpk). Это не создает файл .dcr, но устанавливает значок для компонента.
Обратите внимание, что мой тест с ресурсом" BMP "не удался. Я использовал" BITMAP" как тип ресурса.
Ответ 4
Я изучил предыдущие ответы, используя Delphi XE5 upd2. Не много успеха. Поэтому я попытался построить новое решение и нашел один из полученных ответов.
Вкратце:
1. Создайте растровое изображение с помощью программы Windows Paint.
2. Создайте файл ресурса script с растровым изображением.
3. Скомпилируйте script с помощью BRCC32 для создания файла dcr
4. Включите файл dcr в источник пакета
5. Перекомпилируйте/установите пакет
Чтобы автоматизировать это, достаточно добавить командную строку BRCC32 в проект "предварительная сборка" проекта пакета. Таким образом, вы создадите файл dcr перед каждой сборкой.
Подробное описание см. в моем блоге http://francois-piette.blogspot.be/2014/02/howto-create-dcr-file-for-your-delphi.html