ord(ch)>128 是中文
(ord(ch)>=asc('a') and ord(ch)<=asc('z'))
or(ord(ch)>=asc('A') and ord(ch)<=asc('Z'))是英文字符
其它为其他字符 

解决方案 »

  1.   

    ByteType
        {mbSingleByte 单字母
         mbLeadByte 双字节第一位
         mbTrailByte 双字节第二位
        }if ByteType(sSendText,128)=mbSingleByte then //字母
      if sSendText[128]>='0' and <='9' then 
      if sSendText[128] in ['A'..'Z','a'..'z'] then 
         if  ByteType(sSendText,128)=mbLeadByte then//末尾是否为半个汉字
      

  2.   

    没有说清楚,是内容全部都是数字汉字或者字母,还是内容当中既有数字、字母和汉字!
    只能给你一些提示了:1、根据ASCII码数值来进行判断,Ord()函数就可以把字符转换为对应的数值,值33-126为键盘 可使用字符,值127以上的为未知字符,即为汉字。2、利用函数 strtoint(edit1.text)来判断内容是否为数字,如:
       try
         int1:=strtoint(edit1.text);
       except
         messagebox()//不是数字。3、bytetype(str:string,index:integer)函数,判断字节数    //具体用法可以看帮助!
        如:if bytetype(str,index)=mbleadbyte then   //汉字
           else if bytetype(str,index)=mbsinglebyte then // 字母。具体你自己想想怎么做吧!
      

  3.   

    function StrToSet(mStr: string): TSysCharSet;
    var
      I: Integer;
    begin
      Result := [];
      for I := 1 to Length(mStr) do
        Include(Result, mStr[I]);
    end; { StrToSet }procedure TForm1.Button1Click(Sender: TObject);
    var
      E: Extended;
      I: Integer;
    begin
      if TryStrToInt(Edit1.Text, I) then
        ShowMessage('整数')
      else if TryStrToFloat(Edit1.Text, E) then
        ShowMessage('浮点数')
      else if Length(WideString(Edit1.Text)) <> Length(Edit1.Text) then
        ShowMessage('有汉字')
      else if StrToSet(Edit1.Text) <= ['a'..'z', 'A'..'Z'] then
        ShowMessage('全部是字母')
      else ShowMessage('其他情况');
    end;