我当然知道多内码字符大于128,这样可以检测出英文标点,字母!我要问的是防止输入汉字标点符号!即怎样检测汉字标点符号!谢谢!

解决方案 »

  1.   

    一定有人遇见过吧,帮个忙
    有人告之GBK,GB2312的代码集哪儿找也行啊!
      

  2.   

    keypress事件
     if ord(key) >= $A1 then
      showmessage('汉字');
      

  3.   

    那只能用加个双保险
    keypress事件
     if ord(key) >= $A1 then
      showmessage('汉字');ONEXIT:
      ByteType;有点麻烦
      if ByteType(edit1.text,6) = mbSingleByte then
    //mbSingleByte        非汉字,单字节字符
    //mbLeadByte        汉字第一位
    //mbTrailByte    汉字第二位麻烦啊
    有没有更好的呢??
      

  4.   

    onchangeif text<>'' then for i:= 1 to length(text)if ord(str[i])>$A1 then 汉字end
      

  5.   

    keypress事件
     if ord(key) >= $A1 then
     edit1.text:='';
     showmessage('汉字或者标点');
    中问符号也是双字节的
      

  6.   

    procedure TForm1.Edit1Change(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 1 to Length(Edit1.Text) do
        if ByteType(Edit1.Text, I) <> mbSingleByte then
        begin
          ShowMessage('Error');
          Edit1.Clear;
          Break ;
        end ;
    end;
      

  7.   

    建一个汉字标点和英文标点符号的集合(Set of .....),在Edit.OnExit中判断:
    如果在集合内,则不予通过 .
      

  8.   

    是啊
    所以我在前面问过大家
    哪里能找到Gb2312,Gbk的字符集啊