gpt4 book ai didi

Delphi FireMonkey 在应用程序内存储数据

转载 作者:行者123 更新时间:2023-12-03 14:52:27 28 4
gpt4 key购买 nike

我需要在我的 Delphi XE5 FireMonkey (Android) 移动应用程序中存储一些自定义静态数据。我在网上看到了“RC_DATA”解决方案,但它是特定于Windows的。我需要一个跨平台解决方案。

这是我发现的 RC_DATA 解决方案:http://delphidabbler.com/articles?article=2

代码示例中的注释如下://资源类型 - RT_RCDATA(来自 Windows 单元)

我从这个评论中得出结论,Windows 单元内的代码是特定于 Windows 的。如果情况并非如此,我深表歉意。

既然Chris说它实际上是跨平台的,我就尝试一下。谢谢克里斯。

关于请求组件或库,我已经阅读并重新阅读了我的问题,但我只是没有看到它。我想“解决方案”可能包括组件或库,但我从来没有想到过。如果我做错了什么,我再次道歉。

最佳答案

远非您所谓的特定于 Windows 的“RC_DATA”解决方案,它实际上是 Delphi 提供的最直接的跨平台方式。您需要做的就是通过 Project|Resources and Images... 将文件添加到项目中;由于其他资源类型 Windows 特定的,因此只需坚持每种资源类型的 RCDATA 即可。然后,要加载,请使用 TResourceStream 就像在 VCL 应用程序中所做的那样(RT_RCDATASystem.Types 中声明):

procedure LoadStringsFromRes(Strings: TStrings; const ResName: string);
var
Stream: TResourceStream;
begin
Stream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
try
Strings.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;

此外,如果出于某种原因您想在尝试加载给定资源之前检查该资源是否存在,System 单元会实现 Windows API FindResource 函数,用于非Windows 平台。

嵌入资源的替代方法是使用 Project|Deployment 将文件添加到应用程序包(OS X 和 iOS)或 APK (Android)。虽然这可能被认为是一种更“平台 native ”的做事方式,但适当的“远程路径”是特定于平台的……坦率地说,如果一个人如此痴迷于平台 native ,他们就无法处理嵌入式资源,那么他们一开始就不会使用 FMX...

<小时/>

更新:关于现在链接到的文章,它展示了如何手动编写 RES 文件,这不是人们通常会做的事情 - 如果您不使用 IDE 的小资源管理器,那么通常的方法是创建一个 RC 脚本并使用 Borland 或 Microsoft 资源编译器进行编译。

关于Delphi FireMonkey 在应用程序内存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291706/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com