我用了一个DBEdit对应ACCESS数据库的表的一个字段,设定为小数
现在可以只允许输入数字,小数点,还有加减号了
但是复制字符还是可以输入,所以当鼠标离开这个DBEdit的时候,就会自动有个错误的弹出窗口,意思就是内容不符合数据库中那个字段
有没有办法更改那个警告窗口的内容?????
我在delphi/source/vcl 下面看那个DBCTRLS.PAS ,在EDIT exit的时候,有个try,然后出错会有一个sendmessage,是不是就是这个message?但是又牵涉到其他好几个PAS文件,根本就不懂了
请各位帮忙
或者有没有其他解决这个校验的方法,禁止复制?屏蔽系统的校验换成自己的try?

解决方案 »

  1.   

    在DBEdit的onkeydown写自己的事件
      

  2.   

    自己处理事件就是的
    不一定非要用DBedit的,自己写个好用的都不难http://lysoft.7u7.net
      

  3.   

    把ctrl + v给屏蔽了,不让用户粘贴就可以了!
      

  4.   

    数据库不允许输入字符,那当输入非法字符后报错有什么不对吗?
    你如果不希望显示系统的错误信息,可以在onchange事件里对输入的内容进行判断,
    最好不用dbedit,用户就算输入正确也不一定就想保存,可dbedit会自动把输入的数据提交到数据库!
      

  5.   

    procedure TForm1.DBEdit1Exit(Sender: TObject);
    begin
      Try
        StrToFloat(DBEdit1.Text);
      Except
        DBEdit1.SetFocus;
      end;
    end;
      

  6.   

    谢谢各位的回复,如果是用onchange的事件做的话,每输入一个键,就会判断一下,那样使用起来岂不是非常麻烦
    ctrl+v已经不能用了,但是鼠标的粘贴还没有屏蔽,现在可以试试
    如果在dbeditexit事件里写的话,运行时还是先执行数据库字段的校验,然后才执行exit事件
    我希望的结果是,用户可以复制粘贴,但是在exit或者post的时候校验一下,警告框不想看到系统的那个警告,请各位帮忙
    偶第一次发问题:)