加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:34:38 所属栏目:大数据 来源:网络整理
导读:我需要在我的Delphi XE5 FireMonkey( Android)移动应用程序中存储一些自定义的静态数据.我在网上看过’RC_DATA’解决方案,但它是特定于Windows的. 我需要一个跨平台的解决方案. 这是我发现的RC_DATA解决方案:http://delphidabbler.com/articles?article=2
我需要在我的Delphi XE5 FireMonkey( Android)移动应用程序中存储一些自定义的静态数据.我在网上看过’RC_DATA’解决方案,但它是特定于Windows的.
我需要一个跨平台的解决方案.

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

代码示例中的注释读取://资源类型 – RT_RCDATA(来自Windows单元)

我从这篇评论中得出结论,Windows单元中的代码是特定于Windows的.如果不是这样,我道歉.

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

关于要求组件或库,我已阅读并重新阅读我的问题,我只是没有看到它.我猜一个’解决方案’可能会包含一个组件或库,但这在我看来并不存在.如果我做错了,我再次道歉.

解决方法

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

此外,如果由于某种原因您想在尝试加载之前检查给定资源是否存在,则系统单元会为非Windows平台实现Windows API FindResource函数.

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

更新:关于现在已经链接的文章,它显示了如何手动写出一个RES文件,这不是一个人通常会做的 – 如果你没有使用IDE的小资源管理器,那么通常的方法是创建一个RC脚本并使用Borland或Microsoft资源编译器进行编译.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读