国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

Delphi開發(fā)國際化應(yīng)用程序

2019-11-18 18:27:19
字體:
供稿:網(wǎng)友
 

  作者: 餘偉能

日期: 2004-Feb-18


      Delphi一直以來都沒有為多國言語(Multiple Language)提供太多的支持, 使應(yīng)用程序難以實(shí)現(xiàn)國際化,當(dāng)要開發(fā)一個(gè)跨國際的應(yīng)用程序時(shí),就遇上重重的困難。作者本人2001年初曾參與編寫一個(gè)電子報(bào)關(guān)的應(yīng)用程序,程序會(huì)用在中國,美國,香港及臺(tái)灣等地,以后還打算用在日本及韓國。這個(gè)時(shí)候,應(yīng)用程序就必須能同時(shí)能輸入多國語言文字,而且能在同一個(gè)操作平臺(tái)輸入多國語言。由于當(dāng)時(shí)剛用Delphi,在多國語言文字方面走了很多的彎路。 Delphi在多國語言上沒有下太多的功夫,所以在開發(fā)多國語言時(shí),就很困難。以前也問過Borland的工程師關(guān)于多國文字的問題,但都隱約其詞??磥?,要實(shí)現(xiàn)這個(gè)功能只能自已想辦法。Microsoft? Word使我對(duì)實(shí)現(xiàn)多國語言有了一線希望,因?yàn)樗軐?shí)現(xiàn)多種語言文字的輸入與打印。

 
分析:
1.在應(yīng)用程序開發(fā)中,應(yīng)用程序要實(shí)現(xiàn)多國語言,必須用Unicode,因?yàn)橹挥肬nicode才能同時(shí)容納世界上的所有文字的及其內(nèi)碼,才能在同一張窗體上實(shí)現(xiàn)多國語言。
2.它受到操作平臺(tái)的限制。上面說過了,只用Unicode才能實(shí)現(xiàn)多國語言并存的問題, 所以操作平臺(tái)必須以Unicode為基本內(nèi)碼。Microsoft? 的操作平臺(tái)中只有Windows NT?以后版本才支持,所以后面的內(nèi)容都以Windows NT?內(nèi)核技術(shù)平臺(tái)為主。至于Microsoft? Word為什么能在Window9x中實(shí)現(xiàn)多國語言,我現(xiàn)在還不知它搞了什么高招,因?yàn)閃indows9x天生的缺陷與Windows9x將會(huì)被淘汰,所以我不打算在Winows9x上想太多的辦法,這也有可能是Borland不為多國語言做太多的工作的原因。
3.應(yīng)用程序的數(shù)據(jù)庫必須支持Unicode內(nèi)碼。應(yīng)用輸入的內(nèi)容都會(huì)存到數(shù)據(jù)庫中,所以數(shù)據(jù)庫要用一個(gè)支持Unicode的數(shù)據(jù)庫,否則存入的數(shù)據(jù)將無法讀回多國語言文字(或要花很多工作來完成)。目前全面支持Unicode的主流數(shù)據(jù)庫有Microsoft access 2000, SQL server 2000, Oracle 9x,Oracle 9x在建立數(shù)據(jù)庫中必須自定義安裝并選擇內(nèi)碼為Unicode。
4.應(yīng)用程序一般分為輸入界面與報(bào)表。換句話來說,應(yīng)用程序必須能輸入,顯示并打印多國語言文字(同時(shí)容納繁簡英日韓等)。
應(yīng)用程序的Unicode輸入法。 當(dāng)然, 應(yīng)用程序不必一定要用它。 但在測(cè)試時(shí)必須能在同一個(gè)窗體輸入柜中輸入多國語言文字才能證明程序的可行性?,F(xiàn)在能在繁簡英日韓等字體中自由轉(zhuǎn)換的輸入法只有Microsoft?微軟拼音輸入法。
 
分析完后, 應(yīng)用程序必須做以上的準(zhǔn)備工作,我用的是:
1.      Microsoft ? Windows 2000 PRofessional
2.      Microsoft ? Access database 2000
3.      開發(fā)工具是Broand Delphi 7。
4.      界面控作我用了TNTComponent, 它是改寫了Delphi的控件來支持Unicode, TNTComponent是一個(gè)開源代碼控件, 大家可以放心使用及更改。你可以到:http://home.ccci.org/wolbrink下載并安裝 (因?yàn)樗挠梅ㄅc基本的控件一樣, 所以不再說明用法)。
5.      報(bào)表控件我用的是Qreport 3.6.2, 因?yàn)樗恢С諹nicode, 所在我改寫了它的代碼, 使到它能支持多國語言文字。 本文提供補(bǔ)丁代碼下載 (Http://happy.gsidc.com)。 (因?yàn)镼report是Delphi5, 6時(shí)候Delphi自帶的控件, 本文假設(shè)讀者已會(huì)使用它來打印報(bào)表)。
6.      Microsoft?微軟拼音輸入法。 可以到微軟網(wǎng)站免費(fèi)下載。(注:如果要有日語等, 需要下載語言包)


 

 
以上準(zhǔn)備工作做好后, 就可以進(jìn)入應(yīng)用程序的開發(fā)過程。
 
第一個(gè)Hello Unicode.
1.      新建一個(gè)工程。我們需要一個(gè)應(yīng)用程序來運(yùn)行程序, 所以新建一個(gè)工程。
2.      去掉Form1。由于Delphi的Form1是基于一般的單字節(jié)類型來寫的, 所以最好把它去掉。
 
 
 
3.      新建一個(gè)TntForm1, 并加入一個(gè)TntEdit輸入柜和一個(gè)按鈕。安裝完TNTComponent后,
a.)    應(yīng)用程序的新加頁面會(huì)出現(xiàn)TntForm(Unicode)的選項(xiàng), 新建一個(gè)TNTFrom1, 可以更好地控制Unicode。
b.)    Delphi的控件面板上會(huì)出現(xiàn)新的TNT控件組頁, 在多國語言應(yīng)用程序開發(fā)中, 建議要用到Unicode輸入或顯示的地方全部都使用此類面板上的控件。
 
 
 
 
 
 
4.      新建一個(gè)報(bào)表窗體, 并加入一個(gè)QRLabel。
 
 
 
5.      編寫窗體代碼。雙系TntForm1上的TntButton1, Users報(bào)表窗體并輸入以下代碼。
 
 
6.      測(cè)試及運(yùn)行結(jié)果。在程序中我輸入五種語言字體。如下:
a.)     “國”字是繁體
b.)     “國”字是簡體
c.)     “邨”字是香港特有字,不在繁體字庫中,必須由倉頡等輸入法輸入。
d.)      “China”是英文
e.)      “の幼兒園 ひまわり”是日本字體
 
 
 
 
程序結(jié)果證明, 應(yīng)用程序已實(shí)現(xiàn)對(duì)多國應(yīng)用程序的輸入, 顯示及打印功能。下面再來一個(gè)讀寫數(shù)據(jù)(多國字體)到數(shù)據(jù)庫的例子。
 


 

 
一個(gè)與讀寫數(shù)據(jù)數(shù)的應(yīng)用程序。
 
1.      新建一個(gè)Access數(shù)據(jù)庫。因?yàn)榇死右褦?shù)據(jù)存到數(shù)據(jù)庫中,所以要在開始前新建一個(gè)數(shù)據(jù)庫。
 
 
 
2.      新建一個(gè)工程。我們需要一個(gè)應(yīng)用程序來運(yùn)行程序, 所以新建一個(gè)工程。
 
3.      去掉Form1。由于Delphi的Form1是基于一般的單字節(jié)類型來寫的, 所以最好把它去掉。
 
 
 
4.      新建一個(gè)TntForm1, 并加入一個(gè)TntEdit輸入柜兩個(gè)按鈕分別為BtnAdd, BtnPreview (一個(gè)是用來增加多國語言文字到數(shù)據(jù)庫, 另一個(gè)是打印據(jù)據(jù)庫內(nèi)容到報(bào)表)。最后填好數(shù)據(jù)庫聯(lián)接并啟到聯(lián)接。 注:安裝完TNTComponent后
f.)      應(yīng)用程序的新加頁面會(huì)出現(xiàn)TntForm(Unicode)的選項(xiàng), 新建一個(gè)TNTFrom1, 可以更好地控制Unicode。
g.)    Delphi的控件面板上會(huì)出現(xiàn)新的TNT控件頁, 在多國語言應(yīng)用程序開發(fā)中, 建議要用到Unicode輸入或顯示的地方全部都使用此類面板上的控件。
 
 
 
 
 
 
5.      新建一個(gè)報(bào)表窗體, 并加入一個(gè)QRDBText, 定義QRDBText的字段為上面數(shù)據(jù)庫字段名, 這里是用Contents。
 
 
 
 
 
6.      編寫窗體代碼。Users報(bào)表窗體。
a.)    雙系TntForm1上的BtnAdd, 輸入以下代碼。
b.)    雙系TntForm1上的BtnPreview, 輸入以下代碼。
 
 
7.      測(cè)試及運(yùn)行結(jié)果。在程序中我輸入五種語言字體。如下:
h.)    “國”字是繁體
i.)       “國”字是簡體
j.)       “邨”字是香港特有字,不在繁體字庫中,必須由倉頡等輸入法輸入。
k.)     “China”是英文
l.)       “の幼兒園 ひまわり”是日本字體
  
 
 
 
程序結(jié)果證明, 應(yīng)用程序已實(shí)現(xiàn)對(duì)多國應(yīng)用程序的輸入,讀寫, 顯示及打印功能。
 

歡迎大家給我寶貴的意見。同時(shí)要發(fā)郵件與我聯(lián)系。我的郵箱:wnyu@21cn.com
標(biāo)題請(qǐng)注明是: CSDN的朋友。
否則可以會(huì)刪除, 不便之處, 敬請(qǐng)?jiān)彙?

上一篇:Delphi+Word解決方案參考

下一篇:delphi7從入門到精通之三

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 肥乡县| 卓尼县| 米林县| 正定县| 沈阳市| 天峨县| 云梦县| 昌黎县| 安顺市| 布尔津县| 明溪县| 浪卡子县| 深州市| 岢岚县| 赤城县| 建宁县| 贵阳市| 揭阳市| 武穴市| 土默特右旗| 通化县| 子长县| 遂昌县| 景泰县| 红原县| 区。| 永安市| 沙坪坝区| 遵义市| 锡林浩特市| 祁阳县| 合山市| 新田县| 当涂县| 伊春市| 灌南县| 曲麻莱县| 山东省| 房产| 曲阳县| 曲阳县|