注册 登录
编程论坛 Delphi论坛

如何区分数字与字母

adam1103 发布于 2007-12-01 23:40, 2548 次点击
判断输入的是字母还是数字 请问这个判断语句该怎么写呀??
5 回复
#2
sky_yang_sky2007-12-02 11:37
function   CheckString(S:   string):   Boolean;
  var
      vStr:  string;
      vChar: string;
  begin
      result   :=   True;
      vStr   :=S;
      while   vStr   <>   ''   do
      begin
          vChar   :=copy(vStr,0,1);
          vStr   :=   copy(vStr,   2,   length(vStr)   -   1);
          if   not   (((vChar>='a')   and   (vChar<='z'))   or   ((vChar>='A')   and   (vChar<='Z')))   then
          begin
              result   :=   False;
              break;
          end;
      end;   
  end;
  function   Checknum(S:   string):   Boolean;
  var   
      vStr:   string;   
      vChar:   string;
  begin
      result   :=   True;   
      vStr   :=   S;   
      while   vStr   <>   ''   do   
      begin   
          vChar   :=   copy(vStr,   0,   1);
          vStr   :=   copy(vStr,   2,   length(vStr)   -   1);   
          try   
              StrToInt(vChar);   
          except   
              result   :=   False;   
              break;
          end;
      end;   
  end;
#3
provoke2007-12-03 12:40
只接受数字键入的 Edit 控件
在KeyPress 事件中添加如下代码,Edit1 将只能键入数字,并且可以按退格键删除:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((key<'0') or (key>'9')) and (key<>#8) then
  key:=#0;
end;

键入不允许的字符时将不被接收,相当于没有按键;
其中:#8为退格键
若要处理浮点数,还可放宽限制,如允许小数点和%等,不过要限制输入多个小数点和%,并且应该不允许第一个字符为非数字字符,情况稍复杂一些。
百分号为#37
小数点用字符串形式即可:'.'

[[italic] 本帖最后由 provoke 于 2007-12-3 12:42 编辑 [/italic]]
#4
joooyooo2007-12-25 18:08
根据ASCII码为进行判断不就行了!
#5
adam11032007-12-26 14:43
根据ASCII码为进行判断不就行了

 这个我不会...
#6
zhoukai2008-04-18 09:40
ASC码
if (key>#48)and(key<#57) then
 Application.MessageBox('输入的是数字','提示',MB_OK);
if ((key>#65)and(key<#90))or((key>#97)and(key<#122)) then
 Application.MessageBox('输入的是字母','提示',MB_OK);
1