全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:971
推到 Plurk!
推到 Facebook!

TMemo的中文

答題得分者是:wyndog
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-15 16:28:57 IP:220.130.xxx.xxx 未訂閱
請問各位大大, 1.如何判斷Memo是否有中文字的出現呢? 2.若要防止輸入中文,應該如何處理? 3.可以將Memo中的內容以unicode來寫file存起來? 望各位大大指導提示,或有程式可參考.
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-16 10:43:57 IP:60.248.xxx.xxx 未訂閱
1.    中文字碼,是由二個 byte 組成的 第一個 byte 的範圍是 A1-FE 你只要掃過整個字串 發現有 >= A1 的,就知道裡面有中文了    2. 
int isWideChar = 0;
void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
    int ChkKey;        if(isWideChar) {
        isWideChar = 0;
        Key = 0;
    }        ChkKey = Key & 0xFF;
    if(ChkKey > 128) {
        isWideChar = 1;
        Key = 0;
    }
}
因為中文字的輸入,會連續輸入二個 byte 所以,當發現有一個 >= A1 不能只是吃掉這個 byte 而已 還要設個旗標把下一個也吃掉 程式上使用 > 128 是偷懶的寫法,要改成 > 0xA0 也可以 3. TMemo 沒辦法存成 Unicode 要使用 TTntMemo 才行 下載處 http://www.tntware.com/delphicontrols/unicode/
系統時間:2024-05-02 9:47:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!