程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi開發國際化應用程序

Delphi開發國際化應用程序

編輯:Delphi

        Delphi一直以來都沒有為多國言語(Multiple Language)提供太多的支持, 使應用程序難以實現國際化,當要開發一個跨國際的應用程序時,就遇上重重的困難。作者本人2001年初曾參與編寫一個電子報關的應用程序,程序會用在中國,美國,香港及台灣等地,以後還打算用在日本及韓國。這個時候,應用程序就必須能同時能輸入多國語言文字,而且能在同一個操作平台輸入多國語言。由於當時剛用Delphi,在多國語言文字方面走了很多的彎路。 Delphi在多國語言上沒有下太多的功夫,所以在開發多國語言時,就很困難。以前也問過Borland的工程師關於多國文字的問題,但都隱約其詞。看來,要實現這個功能只能自已想辦法。Microsoft? Word使我對實現多國語言有了一線希望,因為它能實現多種語言文字的輸入與打印。

  

  分析: 1.在應用程序開發中,應用程序要實現多國語言,必須用Unicode,因為只用Unicode才能同時容納世界上的所有文字的及其內碼,才能在同一張窗體上實現多國語言。 2.它受到操作平台的限制。上面說過了,只用Unicode才能實現多國語言並存的問題, 所以操作平台必須以Unicode為基本內碼。Microsoft? 的操作平台中只有Windows NT?以後版本才支持,所以後面的內容都以Windows NT?內核技術平台為主。至於Microsoft? Word為什麼能在Window9x中實現多國語言,我現在還不知它搞了什麼高招,因為Windows9x天生的缺陷與Windows9x將會被淘汰,所以我不打算在Winows9x上想太多的辦法,這也有可能是Borland不為多國語言做太多的工作的原因。 3.應用程序的數據庫必須支持Unicode內碼。應用輸入的內容都會存到數據庫中,所以數據庫要用一個支持Unicode的數據庫,否則存入的數據將無法讀回多國語言文字(或要花很多工作來完成)。目前全面支持Unicode的主流數據庫有Microsoft Access 2000, SQL Server 2000, Oracle 9x,Oracle 9x在建立數據庫中必須自定義安裝並選擇內碼為Unicode。 4.應用程序一般分為輸入界面與報表。換句話來說,應用程序必須能輸入,顯示並打印多國語言文字(同時容納繁簡英日韓等)。 應用程序的Unicode輸入法。 當然, 應用程序不必一定要用它。 但在測試時必須能在同一個窗體輸入櫃中輸入多國語言文字才能證明程序的可行性。現在能在繁簡英日韓等字體中自由轉換的輸入法只有Microsoft?微軟拼音輸入法。   分析完後, 應用程序必須做以上的准備工作,我用的是: 1.      Microsoft ? Windows 2000 professional 2.      Microsoft ? Access database 2000 3.      開發工具是Broand Delphi 7。 4.      界面控作我用了TNTComponent, 它是改寫了Delphi的控件來支持Unicode, TNTComponent是一個開源代碼控件, 大家可以放心使用及更改。你可以到:http://home.ccci.org/wolbrink下載並安裝 (因為它的用法與基本的控件一樣, 所以不再說明用法)。 5.      報表控件我用的是Qreport 3.6.2, 因為它不支持Unicode, 所在我改寫了它的代碼, 使到它能支持多國語言文字。 本文提供補丁代碼下載 (Http://happy.gsidc.com)。 (因為Qreport是Delphi5, 6時候Delphi自帶的控件, 本文假設讀者已會使用它來打印報表)。 6.      Microsoft?微軟拼音輸入法。 可以到微軟網站免費下載。(注:如果要有日語等, 需要下載語言包)


 

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


 

  一個與讀寫數據數的應用程序。   1.      新建一個Access數據庫。因為此例子要把數據存到數據庫中,所以要在開始前新建一個數據庫。       2.      新建一個工程。我們需要一個應用程序來運行程序, 所以新建一個工程。   3.      去掉Form1。由於Delphi的Form1是基於一般的單字節類型來寫的, 所以最好把它去掉。       4.      新建一個TntForm1, 並加入一個TntEdit輸入櫃兩個按鈕分別為BtnAdd, BtnPrevIEw (一個是用來增加多國語言文字到數據庫, 另一個是打印據據庫內容到報表)。最後填好數據庫聯接並啟到聯接。 注:安裝完TNTComponent後 f.)      應用程序的新加頁面會出現TntForm(Unicode)的選項, 新建一個TNTFrom1, 可以更好地控制Unicode。 g.)    Delphi的控件面板上會出現新的TNT控件頁, 在多國語言應用程序開發中, 建議要用到Unicode輸入或顯示的地方全部都使用此類面板上的控件。             5.      新建一個報表窗體, 並加入一個QRDBText, 定義QRDBText的字段為上面數據庫字段名, 這裡是用Contents。           6.      編寫窗體代碼。Users報表窗體。 a.)    雙系TntForm1上的BtnAdd, 輸入以下代碼。 b.)    雙系TntForm1上的BtnPrevIEw, 輸入以下代碼。     7.      測試及運行結果。在程序中我輸入五種語言字體。如下: h.)    “國”字是繁體 i.)       “國”字是簡體 j.)       “邨”字是香港特有字,不在繁體字庫中,必須由倉颉等輸入法輸入。 k.)     “China”是英文 l.)       “の幼兒園 ひまわり”是日本字體          程序結果證明, 應用程序已實現對多國應用程序的輸入,讀寫, 顯示及打印功能。   歡迎大家給我寶貴的意見。同時要發郵件與我聯系。我的郵箱:[email protected] 標題請注明是: CSDN的朋友。 否則可以會刪除, 不便之處, 敬請原諒。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved