请问:关于日期录入的问题?(100分)

  • 主题发起人 笑三少2002
  • 开始时间

笑三少2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个数据库系统时,数据表有日期型的字段。
我在录入时用的是AdoTable直接关联到录入窗体中的。
对于日期型的字段我主要是要解决用户录入非法的问题,可是每次输入有误时,总是弹出
系统的英文提示,我想换成自己的提示,该怎么实现呢?
 
用try 。。。except
 
Try
StrToDate(edit1.Text); //最后用Editmask控件
Except
提示...
End;
 
你可以用日期选择组件呀,这样就不会错了;
要不用MASKEDIT,再结合楼上所说的
Try
strtodate(maskedit.text);
except
showmessage('你所输入的日期格式不正确!');
maskedit.setfocus;
end;
 
To 1疯狂delphi及以上几位:
我最先是用的日期选择组件,可是日期选择组件每次有默认值!

如果用MaskEdit控件又不能直接和TField连接起来,必须自己写代码,不知还有什么更
简单的方法呢?
 
用datetimepicker好了,又不会出错[:)]
 
application
 
用datetimepicker有默认的日期,不好
 
疯狂delphi 的方法最方便了。
 
你可以使用dbgrid的oncolexit事件,如果是表示时间的字段,就进行异常的处理
dbgrid.selectedfield.displayname='字段名称'
然后取出相应的值进行判断就可以了
 
我有一个TDbDateTImePicker控件,没有默认值谁要?
 
信息捕捉华给你一个过程:
procedure TFrom1.myExceptHandle(Sender: TObject; E: Exception);
begin
if Pos('valid date',E.Message) > 0 then
Application.messagebox('输入了错误的日期!',pchar(application.title),mb_iconstop+mb_ok)
else if Pos('Value out of bounds',E.Message) > 0 then
Application.messagebox('数据超出范围!',pchar(application.title),mb_iconstop+mb_ok)
else if Pos('a valid floating point',E.Message) > 0 then
Application.messagebox('非法的数值!',pchar(application.title),mb_iconstop+mb_ok)
else if pos('primary',e.Message) > 0 then
Application.messagebox('关键字冲突!',pchar(application.title),mb_iconstop+mb_ok)
else
application.showexception(e);
end;
在formonshow事件中加入
application.OnException :=myexcepthandle;
 
“用datetimepicker有默认的日期,不好”
但你可以在打开的时候设置成当天的值呀,如:
datetimepicker.date:=date();
或者把上次输入的日期记录在配置文件中,
进行时从文件读出赋给datetimepicker呀!
 
谢谢各位,我决定用一个文本框加一个日期选择来实现.大家给了我提示.一并谢过.
分不多,是心意.
 
顶部