在Delphi中,您可以声明将字符串存储在模块资源部分的字符串表中。
在编译时,Delphi会为其分配一个ID并将其存储在字符串表中。
是否有一种方法可以检索声明为resourcestring的字符串的ID?
原因是我使用了一个类似于gnugettext的包。 System.pas中的某些函数(如LoadResString)被挂钩,因此当我在表达式中使用resourcestring时,它将被替换为不同的字符串(翻译)。 当然,这非常方便,但有时我需要resourcestring的原始(未翻译)文本。
当我能够检索字符串的资源ID时,我可以调用LoadString API来获取原始文本,而不是翻译后的文本。
resourcestring
rsExample = 'Example';
在编译时,Delphi会为其分配一个ID并将其存储在字符串表中。
是否有一种方法可以检索声明为resourcestring的字符串的ID?
原因是我使用了一个类似于gnugettext的包。 System.pas中的某些函数(如LoadResString)被挂钩,因此当我在表达式中使用resourcestring时,它将被替换为不同的字符串(翻译)。 当然,这非常方便,但有时我需要resourcestring的原始(未翻译)文本。
当我能够检索字符串的资源ID时,我可以调用LoadString API来获取原始文本,而不是翻译后的文本。
TResStringRec
文档中写道...TResStringRec 代表一个字符串资源。TResStringRec 是一个结构,其中包含字符串资源的模块和标识符。
- RRUZresourcestring
声明的字符串链接。它说TResStringRec类型的变量由系统例程在运行时用于定位和加载字符串资源。
也许它在这个句子中谈到了resourcestrings,但对我来说不太清楚。无论如何,你已经将我引导到了正确的方向! - R. Beiboer