一个有关输入数据校验的问题,请高手帮帮忙!!!!!!急的很!!!!

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

6 个解决方案

#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的时候校验一下,警告框不想看到系统的那个警告,请各位帮忙
偶第一次发问题:)

#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的时候校验一下,警告框不想看到系统的那个警告,请各位帮忙
偶第一次发问题:)