제가 구현하고자하는 바는 이렇습니다.
시작일 : 년 월 일 시 (2002020607) 지정
종료일 : 년 월 일 시 (2002030511) 지정
년,월,일,시에 관련된 문자열은 콤보박스로 만들어서 각각호출합니다.
위의 시작일과 종료일의 범위를 지정한후 저장하는데..
궁극적인 목적은 시작일과 종료일 범위를 지정하여 범위안의 기간에만 이벤트가 수행되게 하려는것입니다.
또한 지정된범위에서 종료일이 시작일보다 앞선 범위일때 에러메시지를 출력하려고 하였습니다. ('시작일보다 앞선날이 지정되었음')
그런데 저장버튼을 누르면 아래와 같은 에러메시지가 납니다.
'2002020606 is not a vaild date'..Process Stop이란 메시지가 뜹니다.
어디가 문제인지 경험자분들의 조언부탁드립니다..
[소스]
procedure TForm.SaveBtnClick(Sender: TObject);
var
StxDateStr : String;
EtxDateStr : String;
StxDate,EtxDate :TDateTime;
begin
StxDateStr:=Trim(StxYear.Text)+Trim(cbstxMonth.Text)+Trim(cbStxday.Text)+Trim(cbStxHour.Text);
EtxDateStr:=Trim(EtxYear.Text)+Trim(cbEtxMonth.Text)+Trim(cbEtxday.Text)+Trim(cbEtxHour.Text);
StxDate:=StrToDate(StxDateStr); //이부분에서 에러가..
EtxDate:=StrToDate(EtxDateStr);//여기도 마찬가지..
if StrToDate(StxDateStr)<StrToDate(EtxDateStr) then showMessage('종료일이 시작일보다 큽니다..'); //위처럼 비교하는것이 잘못된건 아닌지요..
var
StxDateStr : String;
EtxDateStr : String;
StxDate,EtxDate :TDateTime;
begin
StxDateStr:=Trim(StxYear.Text)+'-' +Trim(cbstxMonth.Text)+'-' +Trim(cbStxday.Text)+' ' +Trim(cbStxHour.Text)+':00';
EtxDateStr:=Trim(EtxYear.Text)+'-' +Trim(cbEtxMonth.Text)+'-' +Trim(cbEtxday.Text)+' ' +Trim(cbEtxHour.Text)+':00';
try
StxDate:=StrToDateTime(StxDateStr);
EtxDate:=StrToDateTime(EtxDateStr);
except
showMessage('날짜입력을 잘못 하셨습니다.');
Exit;
end;
if StxDate<EtxDate then showMessage('종료일이 시작일보다 큽니다..');