如何让一个edit组件中输入的内容必须为数字,是用isvalidident这个函数吗?最好写上代码。各位,拉兄弟一把吧,小弟我初学,水平很垃圾,谢谢了!

解决方案 »

  1.   

    限制只能数字输入:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
               if ((key<'0') or (key>'9'))and (key<>#8) then
                    key:=#0;
    end;
      

  2.   

    在KeyPress的时候判断Char的Ascii码
      

  3.   

    在Edit1KeyPress事件里判断就行。
      

  4.   

    我喜欢后发制人
    try
        strtofloat(edit1.text);
    excetp
        edit1.cancel;
    end;
      

  5.   

    忘了说了.
    把这段代码放到edit的onchange事件里.呵呵
      

  6.   

    谢谢大家了,可我觉得在Edit1KeyPress判断是限制键盘的输入,我的想法是先让用户自己随便输入,然后由程序判断,不知道这样行吗?
      

  7.   

    加上这些代码:try
      strtofloat(edit1.text);
    except
      raise Exception.Create('Not numeric')
    end;
      

  8.   

    谢谢大家了,可我觉得在Edit1KeyPress判断是限制键盘的输入,我的想法是先让用户自己随便输入,然后由程序判断,不知道这样行吗?我的方法就是符合条件的呀.
      

  9.   

    只是要把edit1.cancel修改为edit1.text='';
      

  10.   

    这些处理好像都没有delete键?我是不是有些钻牛角尖呢?
      

  11.   

    SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);
      

  12.   

    先谢谢大家了,可是还是不行,我的意思是,在表单中加入一个edit和一个按钮,在edit中输入字符,然后点击按钮,如果输入的不是数字,就showmessage,就这意思,我初学,你们说的我不懂,写的详细点,谢谢各位前辈了!