線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2581
推到 Plurk!
推到 Facebook!

問一個Stupid問題?

答題得分者是:conundrum
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-30 12:15:23 IP:66.171.xxx.xxx 未訂閱
如果將程式裏有中文字全改為Unicode, 這樣是否可以自由在簡繁體sytem上使用? If I transfer all Chinese to Unicode words, can Chinese be display on both side (traditional Chinese system/ simplified Chinese system)? Thank you! 發表人 - ralph 於 2004/01/30 12:17:37
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-02 11:14:42 IP:211.23.xxx.xxx 未訂閱
在 windows 2000/XP 上應沒有問題, 但是在 Windows 98/ME , 系統要正確的設置後才能正常使用. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-02 12:46:37 IP:66.171.xxx.xxx 未訂閱
那我就不需要寫 INI 給2種不同的語言系統. Compiler 後, 執行檔會自動判別嗎? 執行 執行檔後, 在營幕是顯示 Unicode 或者是依據語言系統顯示 Chinese?
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-03 13:44:52 IP:211.23.xxx.xxx 未訂閱
你在畫面上的文字應該是用 VCL 顯示出來的(EX: TLabel, TMainMenu, TButton..) 要顯示 Unicode 使用的 VCL 和 AnsiString 是不同的. 要用同一支程式, 不是不行, 只是工程可就浩大囉!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-05 05:42:04 IP:66.171.xxx.xxx 未訂閱
引言: 要顯示 Unicode 使用的 VCL 和 AnsiString 是不同的. ...Aquarius
可否有程式或例子解釋這個不同? 謝謝! 還有我要讓它依據不同中文系統顯示中文, 是否打Unicode在程式裏, 而顯示出是中文, 我該如何做? 發表人 - ralph 於 2004/02/05 05:48:24
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-05 09:25:55 IP:211.23.xxx.xxx 未訂閱
DELPHI 標準 VCL 只能使用 AnsiString, 你打 Unicode 進去, 是完全不認得的. 要顯示 UNICODE 要用另一套元件, 請參考 http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm 除了 Unicode 的另外一種作法, 當然就是仍使用AnsiString, 只是要判斷在不同的語言系統下, 用不同的 Charset 去顯示. 但是要記得除了改 Caption 外, 還要改 Font 中 name 和 Charset ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-05 10:48:06 IP:218.163.xxx.xxx 未訂閱
DELPHI 標準 VCL 只能使用 AnsiString, 你打 Unicode 進去, 是完全不認得的 然而卻可以儲存UniCode之資料 1. 以DFM為例, 如果你將dfm Save成text檔, 然後用NotePad開啟, 可以看到所有中文字均已Unicode方式儲存. Run Time 在load dfm時先將其轉為WideString再依系統之CodePage轉為Big5或GW232 若font之CharSet設為DEFAULT_CHARSET, 則在簡體環境可看到簡體, 在繁體環境則看繁體. (不須任何Translate) 2. 在pas中之字串, 理論上是一樣, 實際上則很難實作, 因Delphi之編輯環境無法解釋Unicode, 如果用內碼方式倒是可以 例:
procedure TForm1.Button1Click(Sender: TObject);
const
   wp:array[0..3] of widechar=(#37329,#22823,#20013,#0);
begin
  Edit1.Text:=wp;  //Delphi會自動轉換, BCB不會
end;
若Edit1之font.charset設為DEFAULT_CHARSET則簡體環境,繁體環境均可正確顯示 [note] 1. 若使用BCB可使用 WideCharToString(wp)將其轉為符合目前之Codepage 2. 若要同時顯示簡,繁可以用兩個TEdit, font.charset分別為CHINESEBIG5_CHARSET 及GB2312_CHARSET, 然後分別convert
  WideCharToMultiByte(10002, //code page
                      0,     //dwflags
                      wp,   //lpWideCharStr
                      3,     // number of chars in string
                      ss,    // buffer for new string buffer
                      6,     // size of buffer
                    nil,    // default for unmappable chars
                    nil   // set when default char used
   );
10002為Big5, 10008為gb232 3. 由於VCL永遠不處理Unicode,因此只可存成Unicode後轉為Big5或gb232 顯示, 若包含著目前字集不存在之字是無法顯示的
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-05 11:39:58 IP:211.23.xxx.xxx 未訂閱
請問 ccchen 用的是 DELPHI 那一個版本? 我用 Delphi5, Delphi 7 存成 TEXT 格式的 DFM, 看起來都還是 AnsiString 呀!! 我看 Delphi 5/7 的 Source, 去讀取 DFM 內容時, 也沒找到那兒有 Unicode 轉 AnsiString 的function. 不知你的第一點結論是從那兒確認的? ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-02-05 14:19:33 IP:218.163.xxx.xxx 未訂閱
引言: 請問 ccchen 用的是 DELPHI 那一個版本? 我用 Delphi5, Delphi 7 存成 TEXT 格式的 DFM, 看起來都還是 AnsiString 呀!! 我看 Delphi 5/7 的 Source, 去讀取 DFM 內容時, 也沒找到那兒有 Unicode 轉 AnsiString 的function. 不知你的第一點結論是從那兒確認的?
Delphi6之後, 用其他文書編輯器開. 中文的部分, 你可以看到都是 #xxxx,若是Delphi5則可以看到中文 另外你可以看看Source Code Classes.pas中ObjectTextToBinary讀取dfm之處理 Tparser.nextToken可以看到在讀入時先全轉為WideString, 最後再還原成AnsiString
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-02-05 16:58:56 IP:211.23.xxx.xxx 未訂閱
引言:
引言: 請問 ccchen 用的是 DELPHI 那一個版本? 我用 Delphi5, Delphi 7 存成 TEXT 格式的 DFM, 看起來都還是 AnsiString 呀!! 我看 Delphi 5/7 的 Source, 去讀取 DFM 內容時, 也沒找到那兒有 Unicode 轉 AnsiString 的function. 不知你的第一點結論是從那兒確認的?
Delphi6之後, 用其他文書編輯器開. 中文的部分, 你可以看到都是 #xxxx,若是Delphi5則可以看到中文 另外你可以看看Source Code Classes.pas中ObjectTextToBinary讀取dfm之處理 Tparser.nextToken可以看到在讀入時先全轉為WideString, 最後再還原成AnsiString
我又 CHECK 了一下, 發現 DELPHI 真是太自動了!! 若是你只開 Text Form, 則 DELPHI 7 的確如你說的用 Unicode 存放中文字. 但是若我先設 View as Text 後再存檔, 則你再去看 DFM 檔就會變成 AnsiString. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-02-06 15:21:12 IP:66.171.xxx.xxx 未訂閱
兩位大大實在太厲害. 容我多問一題! 若我要列印, 是否也是如此, 還是有另解? 我想要所有中文字是Unicode;但在繁體時, 顯示繁體也列印繁體,在簡體也如此. 謝謝
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-02-06 16:19:05 IP:218.163.xxx.xxx 未訂閱
引言: 兩位大大實在太厲害. 容我多問一題! 若我要列印, 是否也是如此, 還是有另解? 想要所有中文字是Unicode;但在繁體時, 顯示繁體也列印繁體,在簡體也如此. 謝謝
基本上在繁體環境既已自動Convert成繁體,當然列印也沒問題,簡體亦然. 然而我認為實際上還是沒什麼用 1. 逐一用內碼, 太麻煩(Form本身當然沒問題) 2. 太多字不是兩邊同時存在, 因此會有太多?
conundrum
尊榮會員


發表:893
回覆:1272
積分:638
註冊:2004-01-06

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-02-06 17:21:44 IP:61.221.xxx.xxx 未訂閱
如果只有 繁體問題 就去下載 Unicode 補完計畫 For Windows 2000/XP/2003 users Unicode 補完計畫 2.40 alpha3 (for Windows all version) 1.15MB 按此下載 http://search.cpatch.org/download/patchutil/unicodeaton/unicodeaton_240.exe
ralph
初階會員


發表:41
回覆:82
積分:29
註冊:2003-02-04

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-02-07 14:04:21 IP:66.171.xxx.xxx 未訂閱
謝謝所有大大幫忙!
系統時間:2017-10-18 22:46:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!