如何为 FireMonkey 组件添加设计时图标?

How to add design time icon for FireMonkey component?

我已阅读 Paweł Głowacki 的 this 文章,我已经能够为我的组件显示一个图标。结果如下:

我可以在工具面板和结构视图中看到图像。顺便说一下,在设计器中我看到了默认图标:

如何在设计器中也显示我的组件的图标?


我正在使用 Delphi Tokyo 10.2 Update 2。我已按照我链接的文章获取显示的图像。我的组件如下:

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

基本上,我做了以下事情:

  1. 我创建了 3 个位图 (16x16 24x24 32x32) 和一个 png (128x128)
  2. 我已将它们作为资源添加到“项目”>“资源和图像”中
  3. 我用表示大小的后缀称它们为 TEquationSolver。通过这种方式,它们可以正确显示在 IDE.

我在设计时部分缺少什么?在 this 文章中,我阅读了以下内容:

Our guide is: Use PNG if you want very easy backwards compatibility, or small file (BPL) size; use bitmaps if you want fast loading. We use bitmaps for 16, 24, and 32px icons, and PNG for the 128px icons.

事实上,我有 16x16、24x24、32x32 位图和 128px png。还有别的吗?

看来您必须创建我在上面显示的文件加上 Designer 的图像。后者需要匹配继承自 TComponent 的 class 的名称(在我的例子中):

如您所见,我添加了另一个位图(它是 32x32,我刚刚复制并更改了名称)并且我使用 TEquationSolver 作为名称。构建 + 安装后,我得到以下结果:


请注意,我可以只添加 logo.bmp 作为资源(具有与 TComponent 派生的 class 名称相匹配的 ID)并且无论如何它都可以工作。问题是图片不会整齐,因为它们会调整大小并且可能看起来模糊,就像我的情况一样。

出于这个原因,我认为它很好:

  1. 放置将出现在表单设计器中的图像
  2. 放置 IDE
  3. 将使用的 16x16、24x24、32x32 和 128x128

在我的案例中,差异很明显。当我只有一个位图时,图像质量很低,但当我提供各种尺寸时,它们看起来更好。