怎样让Edit控件只接受数字的输入?

解决方案 »

  1.   

    1。SetWindowLong(Edit1.Handle, GWL_STYLE,
                      GetWindowLong(Edit1.Handle, GWL_STYLE) or
                      ES_NUMBER);    2。edit的keypress事件
    if Not (Key in['0'..'9', #8, #13, #27]) then
    begin
      Key := #0;
      Exit;
    end;
      

  2.   

    procedure TForm1.Edit1KeyPress(sender:TObject;var Key:char);
    begin
      if (key<'0') or (key>'9") then
        key:=char(0);
    end;
      

  3.   

    in['0'..'9', #8, #13, #27]) 还可以加一些,
    CTRL,ATL,什么的,
    你自己找找,键值
      

  4.   

    2。edit的keypress事件
    过滤数字键,和功能键,
    还要屏蔽掉默认的粘贴功能。
      

  5.   

    在edit的onkeypress事件中添加程序就行
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var p:integer; tp:TPoint;
    begin
       if key in ['0'..'9','+','-','.'] then
          begin
             if key in ['+','-'] then
                begin
                   p:=pos('+',Edit1.Text)+pos('-',Edit1.Text);
                   if p>0 then key:=#0
                   else
                      begin
                         GetCaretPos(tp);
                         if tp.x>1 then key:=#0;
                      end;
                end
             else
                if key='.' then
                   begin
                      p:=pos('.',Edit1.Text);
                      if p>0 then key:=#0;
                   end;
          end
       else if key>#31 then key:=#0;
    end;
      

  6.   

    maskedit可以自己定义要输入地数据格式。]