一、用一个TDBedit控件和一表中的日期型字段mydate相联后,如果输入不为日期型,就会触发异常,现我想将之换成自已的提示信息,如何作?
例:我输入1234567,系统会提示Its not a valid date,ECovertExcepton
事实上我输入2001/12/01也会错,为什么?
有什么方法能达到发现错误并给出自己的提示,并使其重新输入?二、一表中有一字符型字段myno,我想要输入六位数字,不能多也不能少。用在对应的TTable中的TField字段中设置editmask的方法实现,屏蔽字为000000;1;#,则当我输入12345时,相应的TDBedit失去焦点时会触发异常(因为这时只有5位,不满足屏蔽条件),DElphi帮助说应在TField的Onvalidlate事件中处理。如何处理?急用,请高手帮忙。
例:我输入1234567,系统会提示Its not a valid date,ECovertExcepton
事实上我输入2001/12/01也会错,为什么?
有什么方法能达到发现错误并给出自己的提示,并使其重新输入?二、一表中有一字符型字段myno,我想要输入六位数字,不能多也不能少。用在对应的TTable中的TField字段中设置editmask的方法实现,屏蔽字为000000;1;#,则当我输入12345时,相应的TDBedit失去焦点时会触发异常(因为这时只有5位,不满足屏蔽条件),DElphi帮助说应在TField的Onvalidlate事件中处理。如何处理?急用,请高手帮忙。
解决方案 »
- 100分大讨论:关于软件开发的盗版问题,讨论一下解决办法
- 怎么算天数?
- 怎样取出DBGridEh合计(在Footers上)的值?
- ClientDataSet如何一次清空?
- fastreport中怎样限制用户使用使不能插入数据字段。也就是不能让他看到我的一些表
- 我有一个图片,在delphi里异常显示
- 急!谁有delphi5的补丁包的序列号和注册码?
- 关于DBGRID网格背景和前景颜色的设置的问题? 在线等待!
- 那位大虾能告诉我,怎样删除面板上的控件
- 请问在dataset中如何在程序中知道通过字段名知道其类型!谢谢!
- 大家讨论一下在数据库中使用中文作为字段名的利弊
- 欢迎UP,如何显示动态图标就是图标闪烁(是标题栏上的图标) UP有分!!
2.这个也不好控制,用tdbedit不是很好,但是开发速度很快,如果要做好的应用程序,建议用tedit,可以自己控制,也可以用第三方控件.因为数据敏感构件实在是太敏感了
你可以代码中写出自己的异常处理程序来屏蔽系统异常,就是在你的代码中加TRYEXCEPTend;
语句。并且在语句中显示自己定义的异常信息
其实你就用sql语言来实现,在程序中还好控制,写起来也不麻烦,何苦非要用tdbedit来做呢?
try
d:=strtodate(s);
Myjudge:=true;
except
on EConvertError do
begin
showmessage('Test');
Myjudge:=false;
end;
end;当我输入为合法格式时(如2001-12-1),没问题,可输入非法时,上面的异常由系统捕捉了,我根本抓不到。
2.不用屏蔽字,用一个很简单的程序来控制:
var
i:int;
for i:=0 to 5
begin
if length(trim(edit.text)) then
edit.text='0'+edit.text;
end;
3.TRY
...
EXCEPT
....
end;
可以帮助你处理异常。
我试过,在onexit事件中捕获根本不行.