안녕하세요! 코딩하는 메추라기 케일입니다!
오늘은 제가 앱만들기 프로그램으로 만든 타이머를 들고 와보려고 합니다.
일단
겉모습은 이렇게 생겼습니다.
첫번째로 위에 타이머 1(Timer1)
은 그냥 말 그대로 초시계 역할을 합니다.
두 번째로 위에 MediaPlayer1과 OpenDialog1은 노래를 틀어주는 역할을 합니다.
OpenDialog1은 제가 다운받은 노래의 경로를 알려줍니다.
MediaPlayer1은 OpenDialog1의 노래의 경로를 따라 노래를 틀어줍니다.
밑에 Edit1, Edit2, Edit3 이 따로 있고
오른쪽부터 가장 오른쪽 Edit1은 시간, Edit2는 분, Edit3은 초를 나타냅니다.
가장 밑에 버튼 3개가 있는데요
오른쪽부터 가장 오른쪽 Button1은 시작, Button2는 중지, Button3은 초기화를 나타냅니다.
그럼 이제 코드를 보겠습니다.
맨 처음 들어왔을 때 바로 타이머가 시작되면 안 되겠죠!
그래서 제가 TImer1->Enabled = false;로 타이머가 맨 처음에 실행되지 못하게 했습니다.
Button1(시작 버튼)을 클릭했을때
void __fastcall TForm4::Timer1Timer(TObject *Sender)
{
if (StrToInt(Edit3->Text) >= 0) {
Edit3->Text = StrToIntDef(Edit3->Text, 0) - 1;
if (StrToInt(Edit3->Text) < 10) {
if (StrToInt(Edit3->Text) != -1) {
Edit3->Text = "0" + Edit3->Text;
}
}
if (StrToInt(Edit3->Text) == -1) {
if (StrToInt(Edit2->Text) == 0 && StrToInt(Edit1->Text) == 0) {
Timer1->Enabled = false;
}
else if (StrToInt(Edit2->Text) > 0) {
Edit2->Text = StrToIntDef(Edit2->Text, 0) - 1;
if (StrToInt(Edit2->Text) < 10)
Edit2->Text = "0" + Edit2->Text;
}
Edit3->Text = 59;
}
else if (StrToInt(Edit2->Text == 0) && StrToInt(Edit1->Text) > 0) {
Edit1->Text = StrToIntDef(Edit1->Text, 0) - 1;
if (StrToInt(Edit1->Text) < 10) {
Edit1->Text = "0" + Edit1->Text;
}
Edit2->Text = 59;
Edit3->Text = 59;
}
}
if (StrToInt(Edit3->Text) == 0 && StrToInt(Edit2->Text) == 0 && StrToInt(Edit3->Text) == 0) {
Timer1->Enabled = false;
MediaPlayer1->FileName = OpenDialog1->FileName;
MediaPlayer1->Play();
}
}
}
암튼 되게 뭐가 긴데 이해하면 간단합니다.
저게 Edit3->Text 즉 초가 0초가 될 때
만약 Edit2->Text 즉 분이 1분 이상이면 분이 1분씩 깎여야 하잖아요.
궁까 0분 0초이면 알람이 울려야 하는데
1분 0초이면 그 다음에 0분 59초가 돼야 하잖아요.
똑같이 1시간 0분 0초일땐 0시간 59분 59초 돼야 하는것, 0시간 0분 0초일때 노래 나오는 것 그런 것이 저 코드에 들어 있어요.
또한 이걸 실행시키면 10초가 남았을때 9초가 아니라 09초가 되고 8초가 아니라 08초가 됩니다.
if (StrToInt(Edit3->Text) < 10) {
if (StrToInt(Edit3->Text) != -1) {
Edit3->Text = "0" + Edit3->Text;
}
}
이게 바로 그 역할을 합니다.
초가 10초 이하이고 -1이 아니라면 그 앞에 0을 붙여줍니다.
분도, 시간도 마찬가지로 10분, 10시간 이하이면 0이 앞에 붙습니다.
마지막으로 이코드
이것은 Button2즉 중지 버튼을 눌렀을 때 노래를 끄고 Timer1->Enabled을 false로 한다.
Button3, 즉 초기화 버튼을 눌렀을 때 시간, 분, 초를 다 0으로 세팅하고 모든 노래를 끄고 Timer1->Enabled를 다시 false로 바꿉니다.
실행시켜서
이렇게 해서 실행시키면
잘 되는 걸 보실 수 있습니다.
오늘은 여기까지 입니다!!
다음에 다른 글로 뵙겠습니다!!!
'코딩 > 만든 프로그램' 카테고리의 다른 글
C++앱만들기 프로그램 - 공 피하기(1-디자인) (0) | 2021.07.07 |
---|