Как установить значок компонента Tool Palette для моего компонента в Delphi 2009?

Я прочитал ЭТО но он для Delphi 7 и не работает в 2009 году. Между этими двумя версиями есть много изменений. В D7 иконки 24x24, в D2009 иконки 16x16 ... а в D2009 нет Image Editor для resorces ...

У меня есть модуль SuperList.pas с классом TSuperList внутри и отдельный TSuperList.ico (16x16 16 цветов), который я хочу использовать в качестве значка инструментальной палитры для моего компонента.

Это то, что я пробовал ...

  • Запускаю Delphi,
  • Файл-> Новый-> Пакаж,
  • Добавить .. SuperList.pas,
  • Проект-> Ресурсы ...-> Добавить .. TSuperList.ico,
  • Я изменил идентификатор ресурса на TSUPERLIST (два раза! Похоже, в нем есть ошибка),
  • Установите пакет,
  • перезапустите Delphi.

И значок по-прежнему остается значком по умолчанию!


person Marus Nebunu    schedule 06.11.2014    source источник
comment
Ничего не изменилось со времен Delphi 7 и, вероятно, не изменилось со времен Delphi 1. Добавьте свой глиф в файл .dcr. Дайте ему то же имя, что и ваш компонент. Свяжите файл .dcr с пакетом.   -  person David Heffernan    schedule 06.11.2014
comment
Но как я могу создать файл .dcr, если в Delphi2009 нет редактора изображений?   -  person Marus Nebunu    schedule 06.11.2014
comment
Проще всего использовать старый редактор изображений. В качестве альтернативы см. Этот stackoverflow.com/questions/6999939/   -  person David Heffernan    schedule 06.11.2014
comment
По сути, все, что вам нужно, - это включить ресурс растрового изображения с правильным именем. Как угодно. Ваша ошибка - использовать значок, а не растровое изображение.   -  person David Heffernan    schedule 06.11.2014
comment
Существует проблема. Мой значок использует все пространство 16x16 пикселей, а цвет нижнего левого пикселя растрового изображения считается цветом прозрачности.   -  person Marus Nebunu    schedule 06.11.2014
comment
Вам нужно растровое изображение 24px, не так ли? Или идеал ожидает 16 пикселей. В любом случае вы можете предоставить то, что он ожидает. Нижний левый пиксель прозрачного цвета.   -  person David Heffernan    schedule 06.11.2014
comment
Нет, мне нужно растровое изображение 16 пикселей, потому что это размер всех значков палитры в Delphi 2009. Я попробовал, и он работает, но я не могу использовать нижний левый пиксель ... и он мне тоже нужен.   -  person Marus Nebunu    schedule 06.11.2014
comment
Что ж, вам нужно вписаться в IDE. Слева внизу прозрачный. Я уверен, ты справишься с этим.   -  person David Heffernan    schedule 06.11.2014


Ответы (1)


Ничего особенного не изменилось со времен Delphi 7. Вам необходимо связать ресурс растрового изображения, имя которого совпадает с именем компонента. Вы можете использовать множество различных инструментов для создания растровых изображений и компиляции ресурсов. Ваша ошибка здесь в том, что вы связали значок, а не растровое изображение.

В этом вопросе есть полезные подробности, и его можно было бы считать дубликатом: Лучший способ создать значок компонента в Delphi XE, используя только встроенные инструменты

person David Heffernan    schedule 06.11.2014
comment
@bummi Я закрылся как обман другого Q, а затем снова открыл. Не думаю, что смогу использовать свой дупхаммер дважды. Если кто-то другой может использовать их, меня это устраивает. - person David Heffernan; 07.11.2014
comment
Обратите внимание, что ресурс растрового изображения, имя которого в точности совпадает с именем класса компонента (все заглавными буквами, кстати), должен иметь размер 24x24. Чтобы предоставить изображение 16x16, используйте отдельный ресурс изображения с именем <ClassName>16. Чтобы предоставить изображение 32x32, используйте отдельный ресурс изображения с именем <ClassName>32. Три изображения могут быть в одном файле .DCR. - person Remy Lebeau; 07.11.2014