"Delphi之完全汉语"终结版

原创 2000年09月02日 00:29:00
"Delphi之完全汉语"终结版(已于“家用电脑”37期发表,新瓶旧醋请谅解!)

西安      梁  明


--------------------------------------------------------------------------------

本人在写此段文章前曾有这样一个肮脏的念头:绝对不能把这一招"漏给"别人!但是,良心马上告诉我,绝对不能有如此的想法!于是立刻把她写下来,既算是对上次那篇"Delphi之完全汉语"文章的补充,又算是对自己良心的报答吧!


现在切入正题:大家知道,我们在处理Delphi自身的消息时(我这里指的是包括Delphi系统对话框、异常提示等所有来自Delphi自身的消息),一般采取的办法是"走在Delphi的前面",或是屏蔽掉系统的作用,从而用我们自己的方式处理,以期达到为用户提供纯汉语环境的目的.然而,这一切只能凭借程序员的已有经验来主观预测!由于系统的复杂性以及我们自身的水平所限,这样作的结果难免会顾此失彼,也许随时可能发生的问题都处理得不彻底甚至根本就未处理.试想:在用户使用过程中冒出一些英文的提示,你的程序的"档次"是不是将大打折扣?

因此,我们还必须去寻找更加理想更加彻底的方法,至少,当让程序出现Bug时,普通用户能看懂提示(可不是让你为所欲为与噢).幸好,经过笔者这一阵的反复试验,已经找到另一个万全之策.下面就请听我一一道来(仅限于你的Delphi版本有VCL的源代码--即专业版或企业版):


0.备份Delphi的VCL源代码(所在目录一般为"X:/Program Files/Borland/Delphi4/Source/Vcl").当然,根据需要,仅备份我们需要修改的几个文件也可;


1.在Delphi环境下打开VCL目录下的BdeConst.pas,Consts.pas,BdeConst.pas,DbConsts.pas,midconst.pas,mxConsts.pas,OleConst.pas,WebConst.pas等单元文件,这些单元文件定
义了Delphi用到的常量;


2.把Delphi自己定义的字符串常量"翻译"成我们伟大的母语--汉语;


3."翻译"工作完成后,按原文件名保存;


4.现在就来试试我们的成果,新建一个工程,故意编写一些会出现系统提示的代码,并在编译前,到Delphi的Project Options对话框的Directories/Conditionals页的Search Path选项下,添加搜索路径(也即刚才我们修改常量单元所在的目录),确定后退出;


5.就观看你的英语翻译水平吧!

注意:
①如果你的版本为Delphi 3的话,以上的路径作相应的变化,且Project Options对话框的Directories/Conditionals为Directories;
②对编译条件的该动只对此工程有效,新建工程后需重新设置.如果你希望一劳永逸的话,请随我来:
运行Windows注册表编辑程序Regedit.exe,打开HKEY_CURRENT_USER->Software->Borland->Delphi->4.0->Library,在其中一为"Search path"的串值中加入"$(DELPHI)/Source/VCL".Ok,目的达到!


以下是笔者修改Consts.pas单元文件中函数MessageDlg的常量后用该函数发送的消息.这次,我们看到的再也不是半"英"半阳的消息框了.怎么样,够靓吧?
...
Begin
MessageDlg('感觉如何?'+#13#10#13#10+
'我这里即是把"SMsgDlgInformation"翻译为''消息'';'+#13#10+
'把"SOKButton"翻译为''确定''而得到的结果!',
mtInformation,[mbok],0);
End;
...
****此处插入图4****

上面的动作是不是太老实了一点?!其实,我们完全可以根据自己的意愿来定制这些常量(只要Inprise同意),使其达到一种的特殊效果,比如,我们可以将"SMsgDlgInformation"翻译为你的软件标题或自己的工作室名称等等,如此一来,你的非凡个性将展示无遗!

有关Delphi"完全汉语"方面的经验、技巧笔者就打算介绍这么多(等我手上的这两个程序有交待后我会把这一整套东东放在我的个人主页上,到时请去Down吧).当然,冠以"完全汉语"实令我脸红,但本人多么希望Inprise公司早点结束我们"羡慕"VB程序员的时代!


现在还有一些问题,例如:Delphi的环境是英文的,报表预览的提示及按钮也是英文的等等.对于第一个问题,我个人认为倒没有多大必要,因为没有哪一个程序员连菜单都看不懂的,我们努力的目标是用户;对于第二个问题也有办法解决,在此本不应该涉及此话题,但我在网上看到有很多人在问这个问题,因此也在此略谈一下,作为这个话题的结尾吧:

①按照要求制订好QuickRep的内容;
②仿照QuickRep的预览模式或自己定制QRPreview;
③在QuickRep的OnPreview事件中将QuickRep的QRPrinter赋值给QRPreview的QRPrinter
(如QRPreview1.QRPrinter:=Quickrep1.QRPrinter;)即可让QRPreview取代QuickRep
的预览模式了.


版主:梁明
日期:1999-03-01
E-mail:delphifan@990.net

--------------------------------------------------------------------------------

delphi pos 多个中文字符

系统的pos只能 pos一个中文,于是改进了下,大概测试通过,如果发现问题请自行修改 function posex(substr: WideString;s: widestring): In...
  • y281252548
  • y281252548
  • 2017年11月15日 10:21
  • 68

delphi关闭程序 Close,application.Terminate与halt有什么区别

在有多个Form窗体时可以体现出来. 用close是只关闭本窗体,而用Application.terminate是关闭整个程序,包括所有窗体. (1)当Close是一个主窗体时,程序会退出。Clo...
  • lynnelxl
  • lynnelxl
  • 2012年01月04日 09:01
  • 706

Delphi下的OpenGL开发入门(翻)

Delphi下的OpenGL开发入门(翻) -->2004-4-25 | 13:35 (GMT 0) 原文地址:http://bdn.borland.com/article/0...
  • zblue78
  • zblue78
  • 2005年03月08日 18:07
  • 1319

win8.1输入法快捷键

可以去掉热键ctrl+space的。 首先修改成别的热键。 然后在 控制面板\时钟、语言和区域\语言 添加语言 英语(美国的), win+space就可以切换到英语,shift和ct...
  • xiuzhentianting
  • xiuzhentianting
  • 2015年09月05日 12:43
  • 186

delphi的 PosEx 函数功能介绍

首先要引用StrUtils单元,即uses部分要加入StrUtils 函数的功能是返回子串 SubStr 在字符串 S 中的索引。可以指定查找起始位置Offset,默认从头开始查找,即Offse...
  • u010973206
  • u010973206
  • 2015年04月18日 13:32
  • 2665

DELPHI高性能大容量SOCKET并发(十):IOCP完成端口性能优化

IOCP性能优化主要是集中在每个处理接收数据和发送数据的对象锁,如果能降低锁的调用次数和提高锁的效率,对IOCP的整理效率和吞吐量都非常有帮助。有很多开发人员在优化IOCP的时候,对于如何提高锁的效率...
  • SQLDebug_Fan
  • SQLDebug_Fan
  • 2013年06月10日 22:22
  • 7479

挂接CreateProcessW实现对进程创建的完全控制

SystEm32:这份文档演示了如何实现全局HOOK>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...
  • iiprogram
  • iiprogram
  • 2005年08月05日 11:03
  • 903

JM86之误码掩盖参考代码完全剖析

前序以下的文字只是本人在学习H.264代码过程中的一些心得体会,限于本人水平有限,所以有错误的地方请阅读者谅解,并提出,大家共同讨论学习。在这里,特别感谢H264乐园版主天之骄子及群里兄弟姐妹们的帮助...
  • zhangji1983
  • zhangji1983
  • 2007年02月07日 21:56
  • 11945

084_《Windows网络编程之Delphi篇》

Internet技术无疑是当今计算机技术的最大热点。本书以当今最为流行的RAD软件之一的Delphi的最新版本为开发工具,尽最大可能包容现在网络的流行协议,讲解网络应用程序的开发原理以及在Window...
  • shuaihj
  • shuaihj
  • 2010年12月18日 14:53
  • 3855

归途与征程 Journey

题目描述:“感谢你们来访 Nescafe 之塔,封印的能量会在两天之内完全被贮存在神杯之中,你们也该回去了。” “不过圣主,我们还有一个问题。难道……Nescafe 就这样被封印成一座神杯,保存在塔...
  • zhangche0526
  • zhangche0526
  • 2017年02月07日 19:56
  • 175
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:"Delphi之完全汉语"终结版
举报原因:
原因补充:

(最多只允许输入30个字)