Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当从资源DLL加载资源字符串时,是否可以在Delphi中更改该字符串?_Delphi_Resources - Fatal编程技术网

当从资源DLL加载资源字符串时,是否可以在Delphi中更改该字符串?

当从资源DLL加载资源字符串时,是否可以在Delphi中更改该字符串?,delphi,resources,Delphi,Resources,我有一个带有本地化资源DLL的Delphi应用程序 我想在从DLL加载资源字符串后对其进行搜索和替换 是否有任何内部程序可用于执行此操作 我需要一种方法来搜索和替换加载的任何资源字符串,而不仅仅是更改特定的资源字符串 Raoul.是的,您必须钩住System.pas中定义的LoadResString()过程 例如,看看我们在中国是怎么做的 此单元代码中包含所有内容: 用于提取所有资源字符串(但也可以使用“详细映射”选项编译可执行文件以获得相同的列表) 用于动态地将所有资源字符串替换为您期望的语

我有一个带有本地化资源DLL的Delphi应用程序

我想在从DLL加载资源字符串后对其进行搜索和替换

是否有任何内部程序可用于执行此操作

我需要一种方法来搜索和替换加载的任何资源字符串,而不仅仅是更改特定的资源字符串


Raoul.

是的,您必须钩住System.pas中定义的LoadResString()过程

例如,看看我们在中国是怎么做的

此单元代码中包含所有内容:

  • 用于提取所有资源字符串(但也可以使用“详细映射”选项编译可执行文件以获得相同的列表)
  • 用于动态地将所有资源字符串替换为您期望的语言
  • 用于缓存所有资源字符串,因为默认LoadResString API可能很慢
您也有类似的代码,但这是一个包含在我们的开源mORMot框架中的代码,从Delphi6一直工作到XE2。还有一些代码可以动态更改同一翻译文本文件中的所有.dfm内容(即表单)。在上的框架文档中有一章介绍了这一点

我认为您将获得任务所需的所有代码模式