안녕하세요..
델파이 초보 입니다.(버전 6.0)
마스크 에디터로 입력 받은 날자의 유효성을 검사 하려고 합니다.
그런데.. 생각 처럼 잘 되지 않습니다..
고수님 도와 주십시요..
procedure start
var
s_date : Tdate ;
s_datetime : TDateTime ;
begin
try
s_date := StrToDate(MaskEdit1.Text) ; <-- 에러 입니다.. 흠..
s_datetime := StrToDateTime(MaskEdit1.Text) ; <-- 이것두 에러 입니다.
except
shomessage('일자가 틀렸습니다.') ;
end;
end ;
예로 2월 31일이라는것은 잘못된 날짜라느거요...
아래것 try ~ except 도 괜찮은데요. 실행시는 에러메세지는 안뜨잖습니까.
아니면 함수로 MaskEdit포멧이 !9999/99/00;1;_ 일경우
function OK_Date(SDate: string): Boolean;
var
Year, Month, Day: integer;
DayTable: PDayTable;
begin
Result := True;
try
Year := StrToInt(copy(SDate,1,4));
Month:= StrToInt(copy(SDate,6,2));
Day := StrToInt(copy(SDate,9,2));
DayTable := @MonthDays[IsLeapYear(Year)];
if not((Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
(Day >= 1) and (Day <= DayTable^[Month])) then begin
Result := False;
end;
except
Result := False;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
var
s_date : Tdate ;
s_datetime : TDateTime ;
begin
if not OK_Date(MaskEdit1.Text) then exit;
try
s_date := StrToDate(MaskEdit1.Text) ; //<-- 에러 입니다.. 흠..
s_datetime := StrToDateTime(MaskEdit1.Text) ; //<-- 이것두 에러 입니다.
except
showmessage('일자가 틀렸습니다.') ;
end;
end;
hsr///////////////////////////////////////////////////////