如何在 FMX 组件中加载资源
How to load resources in a FMX-component
我尝试在 FMX 组件中使用资源,但在尝试读取资源时出现 EResNotFound 错误。
以下场景:
- a FMX-bpl (FmxComponents.bpl) 我在 'resources and images'.
上的 IDE (XE7) 中添加了一些 png 文件
- 资源在 'FmxComponents.dres' 但不在 'FmxComponents.res'。
- 当我尝试执行此语句时
TResourceStream.Create(FindClassHInstance(TPmFmxTitelbar), 'ImgOptions', RT_RCDATA);
我收到错误 EResNotFound 'resource ImgOptions not found'
- 我尝试用 haole (how-to-add-and-use-a-resource-from-a-custom-package-component-in-delphi) 的 post 解决它,但没有成功。
TResourceStream
构造函数的第一个参数是搜索资源的模块实例。因此,如果您真的 link 正确地编辑了资源,使用了正确的类型和名称,那么人们会认为您传递了错误的模块实例。
所以,也许实现拼写错误 TPmFmxTitelbar
的模块不是 linked 资源的模块。
如果您确实传递了正确的模块实例,那么剩下的结论是您未能link 指定类型和名称的资源。使用资源 viewer/editor 检查一下。
好的,我解决了这个问题。
我使用 {$R FmxComponents.dres}
.
将 'FmxComponents.dres' 添加到我的组件中
我认为在 dpk 文件中添加这个就足够了。
我尝试在 FMX 组件中使用资源,但在尝试读取资源时出现 EResNotFound 错误。
以下场景:
- a FMX-bpl (FmxComponents.bpl) 我在 'resources and images'. 上的 IDE (XE7) 中添加了一些 png 文件
- 资源在 'FmxComponents.dres' 但不在 'FmxComponents.res'。
- 当我尝试执行此语句时
TResourceStream.Create(FindClassHInstance(TPmFmxTitelbar), 'ImgOptions', RT_RCDATA);
我收到错误 EResNotFound 'resource ImgOptions not found' - 我尝试用 haole (how-to-add-and-use-a-resource-from-a-custom-package-component-in-delphi) 的 post 解决它,但没有成功。
TResourceStream
构造函数的第一个参数是搜索资源的模块实例。因此,如果您真的 link 正确地编辑了资源,使用了正确的类型和名称,那么人们会认为您传递了错误的模块实例。
所以,也许实现拼写错误 TPmFmxTitelbar
的模块不是 linked 资源的模块。
如果您确实传递了正确的模块实例,那么剩下的结论是您未能link 指定类型和名称的资源。使用资源 viewer/editor 检查一下。
好的,我解决了这个问题。
我使用 {$R FmxComponents.dres}
.
我认为在 dpk 文件中添加这个就足够了。