代码改变世界

Delphi ShowMessage 中OK按钮的汉化,简单方法

2012-08-14 17:36  Sun.M  阅读(1406)  评论(0编辑  收藏  举报

使用Delphi的ShowMessage,显示出来的按钮总是英文,一般情况下,这倒是没什么,我们可以用Windows API中的MessageBox来代替它。只是,如果你使用的Delphi XE,并且使用了它非常酷的皮肤功能,你会发现,ShowMessage的对话框使用了皮肤,而Windows API中的MessageBox却没有使用皮肤外观,所以,这个汉化有时候还是有点用处的,避免了我们再次造轮子的事情发生。

下面是汉化的步骤,非常简单(Delphi 2010,其它版本可以以此参考):

1、File –> New –> Other :

image

2、选择如上图的类型,双击或点击OK,然后选择如下图:

image

3、这样我们的项目文件列表里就多出了这样一个文件:

image

我们打开它编写如下的内容:

STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
65271, 	"确定(&O)"
65272, 	"取消(&C)"
65343, 	"确定(&O)"
}

4、保存、编译,运行,看看我们的ShowMessage的那个按钮,是不是汉化了啊?:

image

 

是不是很简单呢?原理也是很简单,我们通过自己定义的字符串资源,替换了Delphi默认的字符串资源,如果你有一些PE资源查看工具的话,你就可以很清除的看到我们替换了一些内容,如下(我使用的是ResHacker):

image

 

如果你没有成功的话,看一看你的Project源文件中是否有这样一行,如果没有的话,手动添加一下:

program Project2;

//这一行很重要
{$R 'CHS.res' 'CHS.rc'}

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

 

 

这篇文章就到这里吧。