怎么判断edit1.text里面输入的第几位是数字还是字母还是汉字?

解决方案 »

  1.   

    用ByteType()
    Function Judge(S:String):Boolean;
    var i: integer;
    begin
      result:= False;
      for i:= 0 to Length(S)-1 do begin
        if (ByteType(S,i) <> mbSingleByte) then begin
          result:= True;//含有中文字符或其它双字节字符
          break;
        end;
      end;
    end;
      

  2.   

    function GetTypes(Str : string;Index : byte) : string;
    var
      i : integer;
    begin
      if index > 0 then
      begin
          if (ByteType(str,index) <> mbSingleByte) then
            result := '中文字符或其它双字节字符'
          else if str[index] in ['0'..'9']
            result := '数字'
          else result := '字母';
      end else
        result := '';
    end;
      

  3.   

    不好意思,这段代码把
    var
      i : integer
    去掉
      

  4.   

    TO  sxy_9761() 
    写的习惯了吧?!哈哈~~~顺手就写上去了。
    同意你的方法!
      

  5.   

    为什么输入为空会出错,停留在
      else if str[index] in ['0'..'9'] then