我使用Edit编辑框,不想让用户输入非数字类型的内容,可以做到吗?同学说可以用strtoint来检测内容,但是如何判断是否转化出错?

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (key = #13) or (key = #8) then exit;
      if Key in ['a'..'z', 'A'..'Z'] then exit;
      key :=#0;
    end;
      

  2.   

    CSDN - 专家门诊 - Delphi 基础类问题  
     回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 保存 | 关闭窗口   
     
     
    主  题:  可以控制Tedit组件的内容吗? 
    作  者:  intelserver (intelserver)  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Delphi 基础类 
    问题点数:  20 
    回复次数:  1 
    发表时间:  2003-01-23 19:06:09 
       
     
       
    我使用Edit编辑框,不想让用户输入非数字类型的内容,可以做到吗?同学说可以用strtoint来检测内容,但是如何判断是否转化出错?
      
     
     
     回复人: Wnyu(过年了,向大家要红包回家) ( ) 信誉:100  2003-01-23 19:19:00  得分:0 
     
     
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key>#57 or key<#48 then 
      key :=#0;
    end;
      
     
      

  3.   

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

  4.   

    你可以在Edit编辑框的KeyPress事件中限制如下:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not ((key in ['0'..'9']) or (key=#8)) then
        key:= #0;
    end;
    注:#8是退格键(Backspace)