반응형
안녕하세요! 이번에는 Delphi에 대한 실무 함수 개발을 소개하고자 합니다.
우선 현업에서 요청온 내용은 간략하게 설명을 하자면 식사일자, 식사시간을 체크해서 함수로 제어를 해줬으면 좋겠다. 라는 내용의 요청이였습니다. 이에 실제 실무코드는 간단한 형식의 예제 형식으로 전체 명칭을 변경해서 재작성 했으니 참고 부탁드리겠습니다.
1. CheckPrintButtonClick 함수
Print 버튼 클릭 시 식사일자를 확인하는 함수입니다.
// -----------------------------------------------------------------------------
// 1. CheckPrintButtonClick 함수
// -----------------------------------------------------------------------------
// 설명: Print 버튼 클릭 시 식사일자 확인 함수
// -----------------------------------------------------------------------------
// 매개변수:
// - 없음
// -----------------------------------------------------------------------------
// 반환값:
// - Boolean: 확인 결과 (True: 계속 진행, False: 작성 취소)
// -----------------------------------------------------------------------------
function CheckPrintButtonClick: Boolean;
begin
Result := True;
// 현재 선택된 식사일자
DietDate := mealdate.EditValue;
// 오늘 날짜 가져오기
dateString := COPY('현재날짜 대입', 1, 10);
dateString := StringReplace(dateString, '-', '', [rfReplaceAll]);
// StringReplace 설명 링크
https://protractor.tistory.com/31
// 오늘 날짜 세팅
CheckDietDate := dateString;
// 오늘이 아니면 경고 메시지 팝업
if CheckDietDate <> DietDate then
begin
if '메시지 컴포넌트 또는 함수 대입' <> mrYes then
begin
MessageBox('출력 취소');
Result := False;
Exit;
end;
end;
end;
2. CheckMealTime 함수
식사 시간을 확인하는 함수입니다.
// -----------------------------------------------------------------------------
// 2. CheckMealTime 함수
// -----------------------------------------------------------------------------
// 설명: 식사 시간 확인 함수
// -----------------------------------------------------------------------------
// 매개변수:
// - 없음
// -----------------------------------------------------------------------------
// 반환값:
// - Boolean: 확인 결과 (True: 계속 진행, False: 작성 취소)
// -----------------------------------------------------------------------------
function CheckMealTime: Boolean;
begin
Result := True;
CurrentTime := Now;
// 선택된 라디오버튼의 인덱스 가져오기
SelectedIndex := GetSelectedMealRadioButtonIndex;
// 라디오버튼에 따라 해당 식사 시간 설정
case SelectedIndex of
1: MealTime := RecodeTime(CurrentTime, 8, 30, 0, 0); // 조식
2: MealTime := RecodeTime(CurrentTime, 13, 30, 0, 0); // 중식
3: MealTime := RecodeTime(CurrentTime, 18, 0, 0, 0); // 석식
4: MealTime := RecodeTime(IncDay(CurrentTime), 1, 0, 0, 0); // 1일증가
end;
// RecodeTime 설명 링크
https://protractor.tistory.com/31
// 선택된 라디오버튼의 식사 시간 문자열로 표시
MealTimeString := GetMealTimeString(SelectedIndex);
// 식사 시간 체크
https://protractor.tistory.com/32
if CurrentTime > MealTime then
begin
if '메시지 컴포넌트 또는 함수 대입' <> mrYes then
begin
'메시지 컴포넌트 또는 함수 대입'
Result := False;
Exit;
end;
end
else if '메시지 컴포넌트 또는 함수 대입' <> mrYes then
begin
'메시지 컴포넌트 또는 함수 대입'
Result := False;
Exit;
end;
end;
Tips
Delphi 코드를 작성할 때에는 명확한 명명 규칙과 주석을 통해 코드를 이해하기 쉽게 작성하는 것이 좋습니다. 또한 코드를 수정할 때에는 전체적인 흐름을 파악하고 수정하는 것이 유용합니다.
이렇게 수정된 코드를 적용하여 Delphi 어플리케이션을 개선해보세요!
반응형
'언어 공부 > Delphi' 카테고리의 다른 글
[Delphi] 프로그래밍 / Delphi / 문자열 처리 - 실무 (0) | 2024.02.05 |
---|---|
델파이에서 그리드 컨트롤의 고급 사용법 및 오류 처리 (0) | 2024.01.25 |
[Delphi] 식사 시간에 따라 로직 추가 개발 (0) | 2023.12.06 |
최근댓글