在edit的OnKeyPress事件中添加如下代码:
if (key<'0') or (key>'9') then
key:=chr(0);
end;
即可!
在OnChange事件中添加如下代码
if (edit1.gettextlen=6) then
触发你要触发事件的函数比如:form1.button1.click

解决方案 »

  1.   

    if not (key in['0'..'9'])then abort;
      

  2.   

    if not (key in['0'..'9',#8])then 
      key:=chr(0);
    backspace应能正常使用
      

  3.   

    Pipi0714(皮皮0714)回答的不错。
    jyqkr(酷鱼)的补充很有道理。
      

  4.   

    if not(key in ['0'..'9',#8,#13,#46]) then
      key;=#0
      

  5.   

    我觉得还是用maskedit比较方便piip
      

  6.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not ((Key) in ['0'..'9']) then
      Begin
        Abort;
      end;
    end;
      

  7.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    SetWindowLong(edit1.Handle,GWL_STYLE,GETWINDOWLONG(EDIT1.Handle,GWL_STYLE )ORES_NUMBER);
    end;
      

  8.   

    楼上和各位都回答得很有道理,事实验证也通过了,但我想输入后按回车来触发一事件,不知何解,在edit1的onenter中设了一事件后,当formcreat时它就执行了,而且之后在edit1中按下回车就没一点反应了,是什么回事呢?
    应如何处理?