我自定义了下面三个函数
//判断字符串是否是有效日期类型
function isdate(s: string): boolean;
var
d:TDateTime;
begin
try
d:=StrToDate(s);
Result:=true;
except
Result:=false;
end;end;//检测是否是4位年份function is4year(s: string): boolean;
begin
result := false;
if length(s) < 4 then exit;
try
strtoint(copy(s, 1, 4));
result := true;
except
on EConvertError do
result := false;
end;
end;
//**********************************************************************
//日期检测处理,Edit组件输入是否为有效日期,日期的年份是否为4位
//ed1:被检测TlabeledEdit类型组件
//**********************************************************************
function EditIsYear(ed1:Tedit): boolean;
begin
result := false;
if isdate(ed1.Text) = false then
begin
MessageDlg('日期输入不正确!', mtWarning, [mbOk], 0);
ed1.SetFocus;
result := false;
exit;
end;
if is4year(ed1.Text) = false then
begin
MessageDlg('年份必须输入4位!格式为XXXX-XX-XX(年—月—日)!', mtWarning, [mbOk], 0);
ed1.SetFocus;
result := false;
end;
end;
然后在edit1的change的事件里这么写的
if EditIsYear(edit1)=false then exit;
然后出现如下错误:
"19" is not a vaild date,请问我应该如何处理这个问题????
//判断字符串是否是有效日期类型
function isdate(s: string): boolean;
var
d:TDateTime;
begin
try
d:=StrToDate(s);
Result:=true;
except
Result:=false;
end;end;//检测是否是4位年份function is4year(s: string): boolean;
begin
result := false;
if length(s) < 4 then exit;
try
strtoint(copy(s, 1, 4));
result := true;
except
on EConvertError do
result := false;
end;
end;
//**********************************************************************
//日期检测处理,Edit组件输入是否为有效日期,日期的年份是否为4位
//ed1:被检测TlabeledEdit类型组件
//**********************************************************************
function EditIsYear(ed1:Tedit): boolean;
begin
result := false;
if isdate(ed1.Text) = false then
begin
MessageDlg('日期输入不正确!', mtWarning, [mbOk], 0);
ed1.SetFocus;
result := false;
exit;
end;
if is4year(ed1.Text) = false then
begin
MessageDlg('年份必须输入4位!格式为XXXX-XX-XX(年—月—日)!', mtWarning, [mbOk], 0);
ed1.SetFocus;
result := false;
end;
end;
然后在edit1的change的事件里这么写的
if EditIsYear(edit1)=false then exit;
然后出现如下错误:
"19" is not a vaild date,请问我应该如何处理这个问题????
解决方案 »
- 如何复制一个数据库的结构到一个新的数据库
- 如何判断这些机器是否联网!
- DELPHI过滤数据的问题,请帮忙
- 一个关于文本的简单问题,请教高手9重新提问),高分!!
- 在进行完绑定的DBEDit上,我想说一个dbEdit数值一改变,另一dbEdit根据这个dbEdit及一些公式,自动算出,出现问题?
- 如果使udp接收取消息的时候能发出声音??
- 难题:如何让TComboBox在Style=csDropDown时,单击Text区域也弹出下拉列表框?
- IWTreeview是怎样用的?
- 寻找控件?有没有人用过FastReport这个控件。
- copy函数引用效率很差劲,而且引用多了,容易出现问题?谁有好的方法替代它!
- TCoolBar, TToolBar问题:如何锁定工具栏?如何在运行期指定工具栏的位置?
- 判断webbrowser1加裁完成才显示
if editisyear.....
建议使用MaskEdit,格式化为YYYY-MM-DD
验证日期是否有效可以在OnExit事件里判断
try
strtodate(MaskEdit.text);
except
showmessage('日期格式不正确');
maskedit.clear;
maskedit.setfocus;
end;