Подтвердить что ты не робот

Лучший способ сделать значок компонента в 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: И есть способ; Руди В. нашел это.

4b9b3361

Ответ 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

Ответ 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