edit控件中输入必须是中文汉字,如何判断!

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if Ord(key)<=160 then
      key:=#0
    end;
      

  2.   

    不对
    我是说判断edit.text里输入是不是中文汉字
    不是按键盘
      

  3.   

    if Ord(key)<=160 then
      key:=#0
      

  4.   

    var
      Str1:String;
      i:integer;
    begin
      Str1 := Edit1.Text;
      for i:=1 to length(Str1) do
        begin
          if ord(Str1[i])>128 then
             begin
               ShowMessage('有汉字');
               Exit;
             end;
        end;
    end;
      

  5.   

    szTemp := Edit1.text;
    iLen := length(szTemp);
    szTemp := copy(szTemp,iLen-1,1);
    if ord(szTemp)>=127 then
    showmessage('最后一个字符为汉字!');
      

  6.   

    procedure TForm1.Edit1Change(Sender: TObject);
    var szTemp : string;
        iLen : integer;
    begin
      szTemp := Edit1.text;
      iLen := length(szTemp);
      szTemp := copy(szTemp,iLen-1,1);
      if ord(szTemp)>=127 then
        showmessage('最后一个字符为汉字!');
    end;
      

  7.   

    同意楼上
    dawnming(笨小孩) 的帖子
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    i,j:integer;
    str:string;
    begin
     str:=edit1.Text ;
     j:=length(str);
     i:=1;
     while i<j+1 do
       if ByteType(str,i)=mbSingleByte then 
       begin 
         showmessage('必须都是汉字');
         breake;
       end else i:=i+2;
    end;
      

  9.   

    楼顶的,如果你停留在汉字上思考就可能找不出局限的方法。汉字毕竟多。但是英文很少,对吗?你建立一个字符串,把英文字符,包括全角英文 A ,半角英文 A 。甚至所有的Asc码都弄进去。最多才有多少?判断一下。并不困难的。对不对?想法有了,算法可以自己来,简单的。
      

  10.   

    楼顶的,如果你停留在汉字上思考就可能找不出局限的方法。汉字毕竟多。但是英文很少,对吗?你建立一个字符串,把英文字符,包括全角英文 A ,半角英文 A 。甚至所有的Asc码都弄进去。最多才有多少?判断一下。并不困难的。对不对?想法有了,算法可以自己来,简单的。