例如:我要用控件连接数据库,该字段是Float型,当我添加数据时只允许输入数字

解决方案 »

  1.   

    没有,自己写吧
    procedure TForm.EditChange(Sender: TObject);
    begin
      try
        StrToInt((Sender as TEdit).Text);
      except
        (Sender as TEdit).Text:=Copy((Sender as TEdit).Text,1,
          Length((Sender as TEdit).Text)-1);
        (Sender as TEdit).SelStart:=Length((Sender as TEdit).Text);
      end;
    end;
      

  2.   

    procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['0'..'9']) then begin key:=#0 end;
    end;
    form1.keypreview:=true;
      

  3.   

    如果Ctrl+C,Ctrl+V怎么办?
    如果要输入小数点怎么办?
    如果输入多个小数点怎么办?
      

  4.   

    try
      StrToFloat(Edit1.Text);
      ShowMessage('数字');
    except
      ShowMessage('不是数字');
    end;
      

  5.   

    呵呵,,楼主问题多多,
    佩服佩服,,用maskedit吧,,方便的很
      

  6.   

    那就不用检测和纠错了,在用户确认输入时用一个try...except不就得了?错了就提示重新输入。谁知道用户会按下什么键,也没必要关心他输入什么。在这上面花时间真的不值得。
      

  7.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Not (Key in[#48..#57]) then
        Key:=#0;
    end;这样就可以,屏蔽掉了其它的字符,Ctrl+C,Ctrl+V都不起作用了!
    如果是float 在把小数点加进去就可以了如果你想更完美,怕输入两次小数点,你可以为小数点做个已存在的标记就可以了!
      

  8.   

    onkeypress事件:
     if not (key in ['0'..'9',#13,#9,#37..#40]) then 
        abort;
     除回車,1..9,上下左右鍵,回退鍵外都不能輸入
      

  9.   

    用异常处理,如 itperson(阿尔博信:从此为大家回答问题) ,屡试不爽!!~!!~
      

  10.   

    如果不想用异常处理,那就试试Val过程(System单元)吧。