반응형

안녕하세요! 이번에는 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 어플리케이션을 개선해보세요!

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기