【问题标题】:Get name of a resource currently loaded in TImage component - Delphi XE3获取当前在 TImage 组件中加载的资源的名称 - Delphi XE3
【发布时间】:2014-03-05 02:26:22
【问题描述】:

我一直在四处寻找,但没有找到任何具体的东西......

我构建了一个包含大约 100 个小 png 图像的资源文件,并在整个应用程序中随机加载它们。 然后,我在每个 TImage 组件上都有 OnClick 事件,在那里我得到了发件人的名称(Image1、Image2 等),但不知道如何获取当前加载在发件人中的标识符的名称(TImage)从资源...

这是否可能,或者我需要存储某种字符串列表或数据库,其中包含有关每张图片使用哪种资源的信息...?

GetNamePath 不检索任何内容...

谢谢

【问题讨论】:

    标签: delphi delphi-xe3 inherited-resources


    【解决方案1】:

    TImage 组件(或图片和位图属性)不存储对已加载资源的任何引用。因此,您必须手动执行此操作。尝试使用引用资源 id 和 TImage 的字典 (TDictionary<TImage, Integer>),或者您可以创建从 TImage 继承的新组件,添加一个新属性来存储加载的资源 id。

    【讨论】:

    • 我最终将使用过的图像 ID 添加到图像标签中,因为目前我不需要它用于其他任何事情。只是想知道是否有任何方法可以直接执行此操作...谢谢。
    【解决方案2】:

    您可以先将图像加载到TImageList,然后根据需要将该列表中的单个图像检索到每个TImage,然后使用TImage.Tag 属性来跟踪检索到的索引。如果您使用TPNGImageList,您可以将额外数据与列表中的每个图像一起存储,就像原始资源标识符名称一样。

    【讨论】:

    • 正如您所建议的那样,我最终将使用过的图像 ID 添加到图像标签中,因为目前我不需要它用于其他任何事情。只是想知道是否有任何方法可以直接执行此操作...谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-01-15
    • 2010-11-21
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2020-12-09
    • 2016-05-09
    • 2022-07-20
    相关资源
    最近更新 更多