如何在Edit中只输入数字和小数点而不输入其他字符?有什么好方法吗?能否写详细点,谢谢

解决方案 »

  1.   

    处理OnKeyDown/Up等等事件,判断用户按下的键,如果是数字或者小数点就相应,如果不是则忽略用户的输入。这样做一般就可以了。用MaskEdit应该也可以。
      

  2.   

    使用 ApplicationEvents 
    截获消息  时查看消息内容是否合法 
    如果不合法将消息结构都置为0  
      

  3.   

    用MaskEdit或者:procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not(key in ['0'..'9','.',#8]) then key:=#0;
    end;
      

  4.   

    用OnKeyPress事件控制很好用的!
      

  5.   

    procedure TMaterialForm.lePriceKeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9', #8, '.']) then
        key := #0
      else
      begin
        if key = '.' then
        begin
          if pos('.', TEdit(Sender).Text) > 0 then key := #0; //只能输入一个小数点
          if (length(TEdit(Sender).Text) = 0) then   //如果第一次输入'.'则自动加'0';
          begin
            Tedit(Sender).SelText:='0.';
            key:=#0;
          end;
        end
        else
          if key = '0' then
          begin
            if (length(TEdit(Sender).Text) = 1) and (TEdit(Sender).Text = '0') then
              key := #0;
          end
          else
          begin
            if (length(TEdit(Sender).Text) = 1) and (TEdit(Sender).Text = '0') then
              TEdit(Sender).Text := '';
          end;
      end;
    end;