我在在DBEditEh1的OnExit事件里写如下代码procedure TFrmbase_rszl.DBEditEh1Exit(Sender: TObject); //计算工龄部分var TmpStr:string ;begin inherited; if not IsValidDate(TDBEditEh(Sender).Text) then begin MsgShow('无效的日期格式!'); TDBEditEh(Sender).SetFocus; end; if TDBEditEh(Sender).Text='' then Exit; if TDBEditEh(Sender).DataSource.State in [dsinsert,dsedit] then begin TmpStr:=TDBEditEh(Sender).Text ; with AdoQryrszl do begin FieldByName('gzgl').Value:= GetworkAgeInID(TmpStr); FieldByName('gzrq').Value:= DBEditEh1.Text ; end; end;end;在另一个单元如下function GetworkAgeInID(const ID:string):Integer ; //工龄计算var TmpStr:string ; iYear1,iMonth1,iDay1,iYear2,iMonth2,iDay2:Word ;begin try DecodeDate(StrToDate(Frmbase_rszl.DBEditEh1.Text),iYear1,iMonth1,iDay1); DecodeDate(Date,iYear2,iMonth2,iDay2); Result:=iYear2-iyear1; if (iMonth1 >iMonth2 ) then Dec(Result) else if (iMonth1=iMonth2)and(iDay1 >iDay2 ) then Dec(Result) except Result:=0; end;end;为什么我输入日期后,提示我输入的日期不是个有效日期呢,格式是20050312