我有一些我希望我的程序使用的脚本。但是,我想知道我是否可以将这些脚本(例如批处理、javascript、vb 脚本等)作为资源存储在我的应用程序中。
我该怎么做呢?
您可以将脚本存储在资源文件中。但是例如批处理文件需要在磁盘上的文件,所以你需要在工作之前解压它们。
这是一篇很好的文章,它解释了如何在资源文件中添加几乎所有内容并使用您的应用程序编译它:http: //delphi.about.com/od/objectpascalide/a/embed_resources.htm
有组件可以在 DFM 中存储任意文件/文件或字符串
例如,在 rxLib/JediVCL 中有这样的,但我相信许多 VCL 库都有一种或另一种 DFM 存储组件。
例如,我曾经将 Firebird Embedded 数据库存储在 DFM 中,以将其保存到 TEMP 中并在运行时使用。
但是,这类似于每次更新时手动将文件重新读取到 DFM 中。说实话比较烦人。
另一种方法是将文本链接到资源。您可以查看DUnit源代码以了解它是如何完成的。您还将在项目中包含 .rc 文件,以便在制作 .exe 时将其编译为 .res
这种方法对 ansi/unicode 文本解释很脆弱。坦率地说,在我在 Delphi XE2 中找到DUnit(由于 IDE 错误而被禁用)之前,我试图让 SF 的 vanilla DUnit 在那里运行。我失败了 - 使用启用 unicode 的 Delphi 阅读时,链接到资源的非 unicode 文本文件完全损坏。
看看这里和那里,尝试两种方法并选择更适合你的一种。