【问题标题】:How to add design time icon for FireMonkey component?如何为 FireMonkey 组件添加设计时图标?
【发布时间】:2019-01-31 06:55:18
【问题描述】:

我已阅读 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 文章中,我阅读了以下内容:

我们的指南是:如果您想要非常简单的向后兼容性,请使用 PNG, 或小文件 (BPL) 大小;如果您想快速加载,请使用位图。我们 对 16、24 和 32 像素的图标使用位图,对 128 像素的图标使用 PNG。

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

【问题讨论】:

  • 我已经修改了问题标题,因为您似乎在 FireMonkey“环境”(也许那里不同)。
  • @RemyLebeau 我找到了解决方案。我不得不上传另一个 32x32 并将该资源的 ID 指定为“TEquationSolver”,而不指定最后的大小,例如“TEquationSolver32”。现在可以了
  • 好久不见@Victoria。欢迎来到德尔福。

标签: delphi firemonkey delphi-10.2-tokyo


【解决方案1】:

看来您必须创建我上面显示的文件加上设计器的图像。后者需要匹配继承自TComponent(在我的情况下)的类的名称:

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


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

因此我认为它很好:

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

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

【讨论】:

  • 现在(次要)问题如下。在 firemonkey 下的 Form Designer 中,一个 32x32 是一个好看的位图图像。在 VCL 下,32x32 是模糊和不透明的。会不会是 IDE 问题?
  • 资源ID与组件类名完全匹配的图像应该是24x24,而不是32x32或任何其他尺寸(在这种情况下,您不需要单独的@987654328 @资源)。其余的图像资源必须指定它们所代表的大小(16x16、32x32、128x128 等)。表单设计器没有专用的图像资源,它使用任何存在的图像,与 IDE 的其余部分相同。
  • @RemyLebeau 谢谢,现在完美了!我已将 24x24 作为具有相同类名的“主”位图,现在图像很整洁。在VCL和FMX下完美!
猜你喜欢
  • 2019-02-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 2021-08-21
相关资源
最近更新 更多