Zegarek

Transkrypt

Zegarek
VB dla dużych i małych
Zadanie10_4
autor: Janusz Białowąs
90 min
Zegar
OPIS ZADANIA
Zegar to zadanie polegające na utworzeniu prostej aplikacji pozwalającej na wyświetlenie aktualnego czasu, dnia
tygodnia czy daty wraz informacją, który to dzień roku. W programie zostanie wykorzystana także kontrolka
NotifyIcon, pozwalająca na umieszczenie ikony aplikacji w zasobniku systemowym oraz menu kontekstowe.
Celem zadania jest poznanie nowych formantów VS .Net oraz doskonalenie umiejętności programowania
zdarzeniowego.
EFEKT KOŃCOWY
Efektem końcowym zadania jest aplikacja przedstawiona na ilustracji poniżej. Pozwala ona sprawdzić aktualną
datę oraz czas.
- Zadanie wymaga użycia pliku zawierającego ikonę aplikacji, np. pliku zagar.ico dołączonego do
scenariusza zadania.
REALIZACJA ZADANIA
Wykonując to zadanie, wykorzystasz kontrolkę Timer oraz metody klasy Date do uzyskania informacji o aktualnej
dacie i czasie pobranym z zegara systemowego. Dodatkowo wykorzystasz formanty NotifyIcon oraz
ContextMenu, by umieścić ikonę programu w zasobniku systemowym oraz przypisać do niej menu kontekstowe,
pozwalające na obsługę aplikacji.
Podczas realizacji zadania skoncentruj się na sposobie wykorzystania nowo poznanych kontrolek.
Uwaga: W kolejnych krokach scenariusza nowo dodany kod oznaczony został czcionką pogrubioną.
Niepogrubione linie kodu mają służyć wyłącznie do oznaczenia miejsca, w którym należy wpisać nowy kod.
Algorytmika i programowanie
1
VB dla dużych i małych
autor: Janusz Białowąs
Krok 1: Tworzenie projektu formularza
1. Utwórz nowy projekt aplikacji Windows o nazwie Zegarek, w folderze wskazanym przez nauczyciela.
2. Ustaw właściwość formularza Text na Zegarek.
3. Na formularzu umieść kontrolki widoczne na rysunku powyżej: trzy przyciski typu RadioButton, dwa
przyciski typu Button oraz pole etykiety (Label). Dla przycisków typu RadioButton ustaw właściwość
Apperarance na Button. Nazwy kontrolek oraz ich właściwość Text zostały opisane w tabeli
zamieszczonej poniżej:
Typ kontrolki
Nazwa kontrolki
Właściwość Text kontrolki
Label
lblZegar
„”
RadioButton
rbnCzas
Godzina
RadioButton
rbnData
Data
RadioButton
rbnDzien
Dzień tygodnia
Button
btnUkryj
Ukryj zegar
Button
btnKoniec
Wyjście
4. Dodaj do formularza kontrolkę Timer; zostanie ona umieszczona w obszarze pod projektem formularza
jako niewidoczny obiekt kontrolny.
Krok 2: Dodanie procedur wyświetlających czas, datę i dzień tygodnia
1. Kliknij dwukrotnie ikonę kontrolki Timer1, by przejść do edytora kodu i procedury obsługi zdarzenia Tick
dla tego formantu.
Algorytmika i programowanie
2
VB dla dużych i małych
autor: Janusz Białowąs
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
End Sub
2. Wyświetl w etykiecie lblZegar aktualny czas systemowy.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
lblZegar.Text = Date.Now.ToLongTimeString
3. Kliknij dwukrotnie przycisk Godzina, aby przejść do edytora kodu i procedury obsługi zdarzenia zmiany
wartości tej kontrolki.
Private Sub rbnGodzina_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles rbnGodzina.CheckedChanged
End Sub
4. Włącz kontrolkę Timer1 oraz wywołaj procedurę obsługi zdarzenia Tick. Pamiętaj o podaniu
domyślnych parametrów sender oraz e, stosowanych w procedurach obsługi zdarzeń.
Private Sub rbnGodzina_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles rbnGodzina.CheckedChanged
Timer1.Enabled = True
Timer1_Tick(sender, e)
5. Kliknij dwukrotnie przycisk Data, aby przejść do edytora kodu i procedury obsługi zdarzenia zmiany
wartości tej kontrolki.
Private Sub rbnData_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbnData.CheckedChanged
End Sub
6. Wyłącz kontrolkę Timer1, która wyświetla aktualną datę systemową oraz informację, który to jest dzień
roku.
Private Sub rbnData_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbnData.CheckedChanged
Timer1.Enabled = False
lblZegar.Text = Date.Now.ToLongDateString & vbCrLf & Date.Now.DayOfYear & "
dzień roku"
7. Kliknij dwukrotnie przycisk Dzień tygodnia, aby przejść do edytora kodu i procedury obsługi zdarzenia
zmiany wartości tej kontrolki.
Private Sub rbnDzien_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbnDzien.CheckedChanged
End Sub
8. Zadeklaruj zmienne pomocnicze oraz odczytaj numer dnia tygodnia.
Private Sub rbnDzien_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles rbnDzien.CheckedChanged
Algorytmika i programowanie
3
VB dla dużych i małych
autor: Janusz Białowąs
Dim nrDnia As Byte
Dim dzien As String
nrDnia = Date.Now.DayOfWeek
9. Zamień numer dnia tygodnia na nazwę dnia za pomocą instrukcji Select Case.
Dim dzien As String
nrDnia = Date.Now.DayOfWeek
Select Case nrDnia
Case 0
dzien = "niedziela"
Case 1
dzien = "poniedziałek"
Case 2
dzien = "wtorek"
Case 3
dzien = "środa"
Case 4
dzien = "czwartek"
Case 5
dzien = "piątek"
Case 6
dzien = "sobota"
End Select
10. Wyłącz kontrolkę Timer1 i wyświetl dzień tygodnia na etykiecie.
dzien = "sobota"
End Select
Timer1.Enabled = False
lblZegar.Text = dzien
11. Kliknij dwukrotnie przycisk Koniec, aby przejść do edytora kodu i procedury obsługi zdarzenia kliknięcia
tej kontrolki.
Private Sub btnKoniec_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKoniec.Click
End Sub
12. Zamknij formularz.
Private Sub btnKoniec_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKoniec.Click
Close()
13. Kliknij dwukrotnie przycisk Ukryj zegar, aby przejść do edytora kodu i procedury obsługi zdarzenia
kliknięcia tej kontrolki.
Private Sub btnUkryj_Click(ByVal sender
System.EventArgs) Handles btnUkryj.Click
As
System.Object,
ByVal
e
As
End Sub
14. Ukryj formularz.
Algorytmika i programowanie
4
VB dla dużych i małych
Private Sub btnUkryj_Click(ByVal sender
System.EventArgs) Handles btnUkryj.Click
Me.Hide()
autor: Janusz Białowąs
As
System.Object,
ByVal
e
As
Krok 3: Obsługa kontrolek NotifyIcon oraz ContextMenu.
1. Dodaj do formularza kontrolki NotifyIcon oraz ContextMenu. Nazwij formanty nicoZegar oraz
cmnuIkona.
2. Ustaw właściwość ConextMenu kontrolki NotifyIcona na cmnuIkona.
Algorytmika i programowanie
5
VB dla dużych i małych
autor: Janusz Białowąs
3. Dodaj ikonę do kontrolki NotifyIcon poprzez właściwość Icon.
4. Kliknij ikonę kontrolki cmnuIkona i dodaj menu kontekstowe wg rysunku poniżej.
Algorytmika i programowanie
6
VB dla dużych i małych
autor: Janusz Białowąs
5. Kliknij dwukrotnie polecenie menu Pokaż zegar, aby przejść do edytora kodu i procedury obsługi
zdarzenia kliknięcia tej kontrolki.
Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem1.Click
End Sub
6. Wpisz polecenie pokazujące formularz.
Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem1.Click
Me.Show()
7. Kliknij dwukrotnie polecenie menu Pokaż zegar, aby przejść do edytora kodu i procedury obsługi
zdarzenia kliknięcia tej kontrolki.
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
End Sub
8. Wpisz polecenie pokazujące formularz.
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem2.Click
Close
9. Kliknij dwukrotnie polecenie menu O programie, aby przejść do edytora kodu i procedury obsługi
zdarzenia kliknięcia tej kontrolki.
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
End Sub
10. Wyświetl informacje o programie, wykorzystując polecenie MessageBox.
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem3.Click
MessageBox.Show("Zegarek wersja 1.", "Info", MessageBoxButtons.OK,
MessageBoxIcon.Information)
Krok 4: Testowanie aplikacji
1. Uruchom aplikację.
2. Sprawdź, czy program wyświetla informacje o godzinie, dacie i dniu tygodnia.
3. Sprawdź, jak zachowuje się program po wciśnięciu przycisku Ukryj zegar oraz czy poprawnie
funkcjonuje menu kontekstowe przypisane do ikony aplikacji.
Algorytmika i programowanie
7