微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

delphi – 使用resourcestring而不是一个const字符串有什么优势吗?

你会告诉我,如果有一些优势(减少sotorage空间,增加速度等)使用:
resourcestring
    MsgErrInvalidInputRange = 'Invalid Message Here!';

代替

const
    MsgErrInvalidInputRange : String = 'Invalid Message Here!';

解决方法

const选项将比resourcestring更快,因为稍后将调用Windows API来获取资源文本。
您可以通过使用一些缓存机制来加快速度。这就是我们在增强型Delphi RTL中所做的工作。

如果您需要多次访问资源内容,那么首先将资源重新加载到字符串中是个好主意。

资源的重点是允许i18n(国际化)您的程序。

你有一些版本的Delphi IDE的翻译经理。但它依赖于外部DLL。

您可以使用来自Linux世界的gettext系统,从http://dxgettext.po.dk依赖于外部.po文件

我们在我们的框架中包含了我们自己的i18n机制,它将翻译和缓存resourcestring文本,并依赖于外部.txt文件(可以使用UTF-8或Unicode文本文件,从Delphi 6到XE)。缓存使得它与const用法一样快。见http://synopse.info/fossil/finfo?name=SQLite3/SQLite3i18n.pas

还有其他开源或商业解决方案。

关于大小存储,资源化存储为UC2缓冲区。所以resourcestring会比Delphi 2009使用更多的内存。由于Delphi 2009,所有的字符串都是unicodestring,即UCS2,所以你不会有更多的存储空间。在所有情况下,文本的存储大小不是应用程序的较大尺寸参数(位图和代码大小对最终的exe有更大的影响)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐