您在本站的位置:主 页 >> 站长专区 >> 站长作品:《汉化 Delphi 的 InputBox 输入对话框》
《站长作品》】               汉化 Delphi 的 InputBox 输入对话框

    Delphi 的 InputBox 输入对话框,其窗口标题、提示信息和默认输入值都可以使用汉字字符串,惟独它上面的两个按钮“OK”“Cancle”不能让用户进行自行设置。看来这要从 Delphi 系统本身来下手了,要对 Delphi 的系统内部资源进行汉化。
    事实正是这样。 Delphi 的许多系统字符串是在 consts.pas 文件中进行定义的。打开 \Program Files\Borland\Delphi5\Source\Vcl 路径下的 consts.pas 文件,找到
    SMsgDlgOK = 'OK';
    SMsgDlgCancel = 'Cancel';
    两条语句,把其中的'OK' 和'Cancel'分别修改为汉字'确定'、'取消',保存。然后新建一个工程,加入 consts.pas 文件,编译工程,会生成一个 consts.dcu 文件,把该 consts.dcu 文件拷贝到 \Program Files\Borland\Delphi5\lib 路径下,OK,您下一次再使用 InputBox 语句,就会显示“确定”“取消”按钮了!
    但是问题还没完。你会发现 InputBox 对话框上的“确定”“取消”字体非常难看。为了得到更好的效果,我们还要修改另一个 Delphi 的系统文件 Graphics.pas。该文件也在 \Program Files\Borland\Delphi5\Source\Vcl 路径下,我们需要在其中的 InitDefFontData 过程中添加几句代码,使 Delphi 对 GB2312_CHARSET 字符集进行处理。以下显示了 InitDefFontData 过程及我们添加的代码: procedure InitDefFontData; var Charset: TFontCharset; begin DefFontData.Height := -MulDiv(8, ScreenLogPixels, 72); if not SysLocale.FarEast then Exit; Charset := GetDefFontCharset; case Charset of SHIFTJIS_CHARSET: begin DefFontData.Name := '俵俽 俹僑僔僢僋'; DefFontData.Height := -MulDiv(9, ScreenLogPixels, 72); DefFontData.CharSet := CharSet; end; //我们加入的语句 GB2312_CHARSET: begin DefFontData.Name :=''; DefFontData.Height :=-MulDiv(9,ScreenLogPixels,72); DefFontData.Charset:=CharSet; end; //结束 end; end;     经过以上两步修改,我们就对 InputBox 对话框进行了彻底的汉化。当然我们不能就此罢休,顺着这条思路,我们还可以汉化大量的 Delphi 的内部系统资源,甚至还可以设想做个汉化包什么的,那就要看各位的功夫了。笔者把自己汉化的一些资料放在了网站 http://helps100000.yeah.net 上,大家可以去下载,您也可以发信到 zhangking@263.net 让我分享您的成果。
    张庆 Email: zhangking@263.net
    Bp: 029-95808 呼 822686    QQ: 9365822
    西安市雁塔区翠花南路瑞禾村副 30 号    710061
    http://helps100000.yeah.net  2002.4.1
返回“站长专区”
Copyright(C) By ZhangQing 张庆 返回主页
站长邮箱:zhangking@263.net  Bp:029-95808 呼 822686