Как добавить значок времени разработки для компонента FireMonkey?

Я прочитал эту статью автора Павел Гловацкий и я смогли отобразить значок для моего компонента. Результат следующий:

введите здесь описание изображения

Я вижу изображение в палитре инструментов и в представлении структуры. Кстати в дизайнере вижу иконку по умолчанию:

введите здесь описание изображения

Как я могу отобразить иконку моего компонента в дизайнере?


Я использую Delphi Tokyo 10.2 Update 2. Я следил за статьей, на которую я ссылался, чтобы показать изображение. Мой компонент следующий:

type
  TEquationSolver = class(TComponent)
    //code...
  end;

В принципе, я сделал следующее:

  1. Я создал 3 растровых изображения (16x16 24x24 32x32) и png (128x128)
  2. Я добавил их как ресурсы в Project > Resources and Images введите здесь описание изображения
  3. Я назвал их TEquationSolver с суффиксом, указывающим на размер. Таким образом, они правильно отображаются в среде IDE.

Что мне не хватает во время разработки? В этой статье я прочитал следующее:

Наше руководство: Используйте PNG, если вам нужна очень простая обратная совместимость или небольшой размер файла (BPL); используйте растровые изображения, если вы хотите быструю загрузку. Мы используем растровые изображения для значков размером 16, 24 и 32 пикселя и PNG для значков размером 128 пикселей.

На самом деле у меня есть растровые изображения 16x16, 24x24, 32x32 и png 128px. Есть что-то еще?


person Alberto Miola    schedule 24.08.2018    source источник
comment
Я изменил заголовок вопроса, так как кажется, что вы находитесь в среде FireMonkey (возможно, там все по-другому).   -  person Victoria    schedule 24.08.2018
comment
@RemyLebeau Я нашел решение. Мне пришлось загрузить еще один 32x32 и указать идентификатор этого ресурса как «TEquationSolver», не указывая размер в конце, например «TEquationSolver32». Теперь это работает   -  person Alberto Miola    schedule 25.08.2018
comment
Увидев @Victoria после долгого времени. Добро пожаловать в Делфи.   -  person user30478    schedule 24.05.2021


Ответы (1)


Кажется, вам нужно создать файлы, которые я показал выше, плюс изображение для конструктора. Последнее должно совпадать с именем класса, наследуемого от TComponent (в моем случае):

введите описание изображения здесь

Как видите, я добавил еще одно растровое изображение (это 32x32, я только что сделал копию и изменил имя), и я использовал TEquationSolver в качестве имени. После сборки + установки у меня есть следующий результат:

введите описание изображения здесь


Обратите внимание, что я мог бы добавить только logo.bmp в качестве ресурса (с идентификатором, который соответствует имени класса, производного от TComponent), и это все равно сработало бы. Проблема в том, что картинки не будут четкими, потому что они будут изменены в размере и могут выглядеть размытыми, как в моем случае.

По этой причине я думаю, что это хорошо:

  1. Поместите изображение, которое появится в конструкторе форм
  2. Поставьте 16x16, 24x24, 32x32 и 128x128, которые будут использоваться IDE

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

person Alberto Miola    schedule 24.08.2018
comment
(Незначительная) проблема заключается в следующем. В дизайнере форм под firemonkey 32x32 — это хорошо выглядящее растровое изображение. Под VCL изображение 32x32 размыто и непрозрачно. Может проблема в IDE? - person Alberto Miola; 25.08.2018
comment
Изображение, идентификатор ресурса которого точно совпадает с именем класса компонента, должно иметь размер 24 x 24, а не 32 x 32 или любой другой размер (в этом случае вам не нужен отдельный ресурс TEquationSolver24). Для остальных ресурсов изображений необходимо указать размер, который они представляют (16 x 16, 32 x 32, 128 x 128 и т. д.). Конструктор форм не имеет выделенного ресурса изображения, он использует любые имеющиеся изображения, как и остальная часть IDE. - person Remy Lebeau; 25.08.2018
comment
@RemyLebeau спасибо, теперь все идеально! Я поместил 24x24 в качестве основного растрового изображения с тем же именем класса, и теперь изображение выглядит аккуратно. Он идеально подходит для VCL и FMX! - person Alberto Miola; 25.08.2018