我正在本地化 RAD Studio 2009 C++ Builder 项目。在 IDE 中,我可以使用 Project/Language/Ativate 在程序启动之前选择一种语言。这很好用。现在我想在运行时更改语言。为了做到这一点,我需要 Delphi 单元 reinit.pas,奇怪的是,它不包含在我的安装中。我在网上的某个地方找到了两个版本。其日期为 2002 年 8 月 9 日。另一个日期为 2013 年 3 月 9 日。表单上有两个按钮,它们调用下面的相应方法以切换到适当的语言。
void __fastcall TFormMonitor::ButtonEnglishClick(TObject *Sender)
{
const cEnglish = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
if(LoadNewResourceModule(cEnglish))
{
ReinitializeForms();
}
}
//---------------------------------------------------------------------------
void __fastcall TFormMonitor::ButtonDeutschClick(TObject *Sender)
{
const cGerman = (SUBLANG_GERMAN | LANG_GERMAN);
if(LoadNewResourceModule(cGerman))
{
ReinitializeForms();
}
}
两个版本的 reinit.pas 具有相同的行为。ReinitialzeForms() 抛出类 EReadError 异常,并带有注释“未找到祖先”。
我在哪里可以获得与 C++ Builder 2009 匹配的 reinit.pas 版本?
还是某些问题导致的 EReadError 异常?
我已经在网上进行了数小时的研究,但没有提出解决方案。
谢谢你的帮助,德尔