问题标签 [timagelist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1235 浏览

delphi - Delphi TImageList 位图更改

我正在使用 Delphi XE2 Update 3。Update 4 与我们的一些 3rd 方组件不兼容,所以我们还没有更新。

我在我的应用程序中使用 TImageList。我注意到很多次当它从源视图切换到表单视图(F12)时,突然之前未修改的单元将被修改。如果我保存按 F12 引起的更改,我可以查看源代码管理并看到 TImageList.Bitmap 属性的几个字节已更改。这是在 TortoiseHg Workbench 中看到的一个示例:

有时还有其他微小的变化,但它总是仅限于 TImageList.Bitmap 数据中的几个孤立点。当我没有进行任何有意的更改时,不断地将这些微不足道的更改推送到源代码控制中是一件非常痛苦的事情。

有谁知道为什么 Delphi 在源视图和表单视图之间切换时会更改 TImageList.Bitmap 数据?有没有办法解决这个限制?

0 投票
2 回答
21591 浏览

delphi - 如何从 ImageList 加载透明图像?

我想将图片(32 位深度,透明)从 a 加载TImageListTImage. 标准方法是ImageList.GetBitmap(Index, Image.Picture.Bitmap);. 但是该GetBitmap方法不适用于透明度,所以我总是得到一个不透明的位图。

0 投票
3 回答
234 浏览

image - Delphi - 想要一种自动化的方式来维护我的项目中的“源”图像文件和图像之间的链接

我发现 Delphi 管理不善的一件事是图像“源”文件和我项目中的图像组件之间的链接(这里是 D2006,但我假设它适用于所有版本)。

假设我的项目中有各种静态图像 - 背景、工具栏按钮字形、各种吸引眼球的东西等。我有相应的 PNG/BMP 等文件集合,这些文件是我获取、抓取或创建的,并且这些文件已经加载在设计时进入图像组件。

一个问题是似乎没有自动方法可以在三个月后找出用于加载图像组件的源图像文件。当您需要编辑一个或多个图像时,这将成为一个更大的问题。

所以我真正想要的是将图像源文件包含在项目构建中的某种方式。即,当我进行构建时,所有图像组件都将首先从源重新加载。目前,当我使用 PhotoShop 或类似工具修改我的一些图像时,我面临着一个冗长且容易出错的过程,将修改后的图像重新加载到它们各自的图像容器中。

创建一个绑定了所有图像的资源并添加代码以在启动时加载图像组件是一种可行的方法吗?其他人有这个问题吗,你是怎么解决的?

0 投票
1 回答
830 浏览

c# - 如何从 DataTable 的特定列填充 ImageList?

我有一个 DataTable,它有一百行和很多列。其中一列是 - “ImageThumbnail” 我想在表单上的一个控件中显示缩略图。此控件需要一个“ImageList”作为其图像源。所以我喜欢我的 ImageList 控件从数据集的“ImageThumbnail”列中填充。我可以使用循环遍历 DataTable 中的所有行来做到这一点,但我相信必须有一些有效的方法。

0 投票
1 回答
1118 浏览

delphi - Delphi TImageList PNG alpha 渲染太暗

我的 Delphi XE3 应用程序工具栏有 PNG 图标,当TActionToolbar通过 a添加到 a 时TImageList,alpha 通道呈现比应有的颜色更暗,导致图标看起来很糟糕。我认为这个问题与.TImageList而不是与TActionToolbar.

Photoshop样机:

Photoshop样机

导入后的实际外观TActionToolbar(文件夹填充的 alpha 为深蓝色):

实际的

这是我的 Delphi Object Inspector 设置TImageList(不,问题不是BlendColor属性):

TImageList 对象检查器

有没有办法让 Delphi/Windows/罪魁祸首正确渲染 alpha 通道?一种选择是将图标全部设为位图,但我宁愿不经历用透明颜色编辑位图的麻烦,因为,好吧,我宁愿不回到恐龙时代...... TIA。

0 投票
1 回答
668 浏览

delphi - 如何禁用按钮中的闪烁图像?

我有一个Button链接到一个ImageList. 我改变ImageIndex了一个OnClickEvent

现在我遇到的问题是,当我改变它时imageOnClickEvent它会改变,但是如果我将鼠标移到它上面,它会向我显示旧的并且正在脉动。

任何人都知道如何禁用这种脉冲/闪烁/交换?

编辑:HotImage 是索引 0。

0 投票
2 回答
1182 浏览

delphi - 如何修复与 ImageList 相关的 EInvalidOperation

我的应用程序(在 Delphi 7 上编写)在 Windows XP SP3 上正确运行,但是当我尝试在 Windows 7 上运行它时,会发生此异常:

带有消息“Invalid ImageList”的 EInvalidOperation

这是主要的应用程序代码:

dmImages 模块已正确创建,例如 frMain,但是何时创建对象 frameAnagrafica 然后在构造函数方法上引发异常:

还有 TframeAnagrafica 的“超类”:

在windows XP 下没问题,但是使用windows 7 就出现问题了。我该如何解决这个问题?

0 投票
0 回答
1026 浏览

delphi - DELPHI - TPageControl 中的 PNG 图像

在我的 Delphi XE3 应用程序中,我将 TPageControl 组件放入 MainForm。我将其“Images”属性链接到包含一些 PNG 图像的 ImageList。在设计时,当我设置每个 TTabSheet 的“图像索引”属性时,图像被正确表示。否则,当我运行应用程序时,我会看到 TTabSheet 中包含的所有图像(应该没有背景)都被黑色方形区域包围。我检查了 ImageList 的设置,发现:

  • -BkColor:clNone
  • -混合颜色:clNone
  • -颜色深度:cd32bit
  • -DrawingStyle:dsTransparent
  • -ImageType:itImage
  • -蒙面:错误


我不知道它是否与问题有关,但我注意到更改项目的设置并启用语音“启用运行时主题”这个问题就解决了。

谢谢。

0 投票
1 回答
947 浏览

delphi - Delphi XE2:如何使用 TImageList 在工具栏上绘制透明 GIF 图像

使用:德尔福 XE2;VCL 表格应用程序

是否可以使用 TImageList 在 ActionToolbar(使用 ActionManager)上绘制透明 GIF 图像?

我一直在尝试,但我得到的是工具按钮上的黑色背景。

GIF 图像为 256 色;并具有透明度(通过在 Corel PaintShopPro 中打开图像进行验证)。

在 ImageList 上,我设置了属性:

颜色深度:= cd32bit,绘图样式:= dsTransparent。

设计时和运行时表单的屏幕截图:

在此处输入图像描述

在此处输入图像描述

任何提示或解决方法表示赞赏!

0 投票
1 回答
1027 浏览

delphi - 如何在 TImageList 中加载动画 gif?

我想知道如何为 TImageList 中的 gif 图像设置动画。

我知道如果我们可以访问 TImageList 中每个图像的图形,则可以将图片的图形转换为 TGIFImage 并将 Animate 属性设置为 true。但问题是我们如何访问在 TImageList 中加载的图像并将其转换为 TGIFImage 并设置该动画属性?

编辑:

我们如何在 TTreeView 中制作 gif 动画?

正如David Heffernan回答的那样,TImageList 不适合保存 gif 图像。但这个问题的目的是在树视图中有一个动画 gif。根据Remy-lebeau的建议我为此写了一个单元。在本单元中,我定义了两个类。第一个使用 TImagelist 作为其属性的 TGifImageRefrence,必须对其进行分配,并且具有将 gif 图像添加到此图像列表的过程。每帧都将保存为 Imagelist 中的单个图像,并且将保存帧的索引和动画速度。第二类是 TGifNode,它的目的是成为 TreeView 中的一个节点。它包含一个计时器并接受一个 TGifImageRefrence 作为它的属性。您可以从此类中为您的树视图继承您自己的节点的类。我用这个单元写了一个例子,把它们放在一起,你可以从http://loghman.ir/MySource/GifInTreeView.zip下载