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

請問怎样禁止RichEdit输入中文啊?

尚未結案
ychx
一般會員


發表:40
回覆:14
積分:10
註冊:2003-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-06 15:34:53 IP:218.0.xxx.xxx 未訂閱
小弟不知怎样禁止RichEdit输入中文,请哪位大哥帮帮我!先谢过了!
likush
高階會員


發表:5
回覆:235
積分:103
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-06 16:59:28 IP:211.78.xxx.xxx 未訂閱
現在回好像有點晚? 您可否換個方式,限制它只能輸入數字或英文。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-07 08:04:39 IP:202.39.xxx.xxx 未訂閱
可在 TRichEdit 的 OnKeyPress 事件中執行如下的程式碼: [/code] procedure TForm1.RichEdit1KeyPress(Sender: TObject; Key: Char); begin   if IsDBCSLeadByte(Byte(Key)) then // 判斷 Key 是否為中文或全形字     Key := #0; end; [/code]    -- 向 KTop 的弟兄們致敬! 
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-07 15:41:25 IP:203.204.xxx.xxx 未訂閱
To:hagar 兄    我試過RichEdit,當輸入的是中文時,完全不會觸發OnKeyPress 事件,而TMemo就會,後來發現
procedure TCustomRichEdit.CreateParams(var Params: TCreateParams);
const
  RichEditModuleName = 'RICHED32.DLL';
  HideScrollBars: array[Boolean] of DWORD = (ES_DISABLENOSCROLL, 0);
  HideSelections: array[Boolean] of DWORD = (ES_NOHIDESEL, 0);
begin
  if FRichEditModule = 0 then
  begin
    FRichEditModule := LoadLibrary(RichEditModuleName);
    if FRichEditModule <= HINSTANCE_ERROR then FRichEditModule := 0;
  end;
  inherited CreateParams(Params);
  CreateSubClass(Params, 'RICHEDIT');
  with Params do
  begin
    Style := Style or HideScrollBars[FHideScrollBars] or
      HideSelections[HideSelection];
    WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
  end;
end;
所以中文的KeyPress是否被 RICHED32.DLL 給攔走,跟本輪不到VCL的事件觸發,輸入英數字倒是沒問題,都會觸發KeyPress事件。 _______________________________________ 深藍的魚,祝您好運..........連連
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-07 20:49:18 IP:202.39.xxx.xxx 未訂閱
感謝 Chance36 大大指正, 這下糗了!  -- 向 src="http://www.sweetbaby.net/~hagar/good.bmp">
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-08 01:04:29 IP:203.204.xxx.xxx 未訂閱
hagar 兄     請別誤會啊!指正不敢啦!我只是看到這裏後,猜測TRichEdit的行為模式也只是純猜測而已,因為我還沒看懂啦,所以才會求教於你,前面貼文最後忘了用'?'問號以致造成誤會,是我的不是,請你別見怪才是。    _______________________________________ 深藍的魚,祝您好運..........連連
ychx
一般會員


發表:40
回覆:14
積分:10
註冊:2003-08-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-08 14:58:31 IP:218.72.xxx.xxx 未訂閱
哪有没有哪位大哥可以解决此难题的呢?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-08 15:31:07 IP:202.39.xxx.xxx 未訂閱
小弟怎會見怪呢?< > 不過目前為止小弟也找不出解決之道! < > -- 向 KTop 的弟兄們致敬!
系統時間:2024-11-22 10:57:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!