程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi之完全漢語終結版

Delphi之完全漢語終結版

編輯:Delphi
"Delphi之完全漢語"終結版(已於“家用電腦”37期發表,新瓶舊醋請諒解!)

西安      梁  明


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

本人在寫此段文章前曾有這樣一個骯髒的念頭:絕對不能把這一招"漏給"別人!但是,良心馬上告訴我,絕對不能有如此的想法!於是立刻把她寫下來,既算是對上次那篇"Delphi之完全漢語"文章的補充,又算是對自己良心的報答吧!


現在切入正題:大家知道,我們在處理Delphi自身的消息時(我這裡指的是包括Delphi系統對話框、異常提示等所有來自Delphi自身的消息),一般采取的辦法是"走在Delphi的前面",或是屏蔽掉系統的作用,從而用我們自己的方式處理,以期達到為用戶提供純漢語環境的目的.然而,這一切只能憑借程序員的已有經驗來主觀預測!由於系統的復雜性以及我們自身的水平所限,這樣作的結果難免會顧此失彼,也許隨時可能發生的問題都處理得不徹底甚至根本就未處理.試想:在用戶使用過程中冒出一些英文的提示,你的程序的"檔次"是不是將大打折扣?

因此,我們還必須去尋找更加理想更加徹底的方法,至少,當讓程序出現Bug時,普通用戶能看懂提示(可不是讓你為所欲為與噢).幸好,經過筆者這一陣的反復試驗,已經找到另一個萬全之策.下面就請聽我一一道來(僅限於你的Delphi版本有VCL的源代碼--即專業版或企業版):


0.備份Delphi的VCL源代碼(所在目錄一般為"X:PRogram FilesBorlandDelphi4SourceVcl").當然,根據需要,僅備份我們需要修改的幾個文件也可;


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)SourceVCL".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:[email protected]
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved