Fizyka szkoła podstawowa
Fizyka: wzory, prawa i teoria. Rozwiązania zadań z omówieniem

Rozwązanie zadania:

Format czasu. Zegar cyfrowy- Visual Studio C#

Typ string ma wiele sposobów formatowania. Jednym z kolejnych formatów jest format daty i czasu, który zależy od regionu świata (a zarazem aktualnych ustawień środowiska Windows). Więcej na temat formatowania daty i czasu przeczytasz pod tym linkiem

formatowanie daty i czasu

Formatowanie czasu można wykorzystać do napisania własnej aplikacji symulującej zegar cyfrowy.

Cel: Napisz aplikację, która odczyta aktualny czas i przedstawi go w formie graficznej na wzór zegar cyfrowego

zegar cyfrowy, visual studio c#

Krok 1: Układ komponentów

  • StatusStrip- sztuk 1
  • Timer- sztuk 1
  • ImageList- sztuk 1
  • PictureBox- sztuk 8

Proponowany układ kontrolek przedstawia poniższa ilustracja

kontrolki zegara cyfrowego visual studio c#

Krok2: Przygotowanie grafiki

W dowolnym programie graficznym przygotuj obrazy dla każdej z cyfr oraz znaku separatora w postaci dwukropka. Na przykład

cyfra 6

Zadbaj o to, aby każdy z obrazów był o tym samym rozmiarze długości boków w pikselach (64x92 itp.) Gotowe obrazy cyfr i separatora osadź kolekcji kontrolki ImageLis

kolekcja imageList visual studio c#

W właściwościach kontroli ImageList ustaw rzeczywisty rozmiar osadzanych obrazów cyfr

rozmiar imageList

Krok 3 Dobór parametrów dla kontrolek PictureBox

Kontrolka ta posiada możliwość skalowania osadzonego w niej obrazu graficznego. Skorzystanie z tej właściwości pozwoli dobrać niewielki rozmiar okna formatki. Jednocześnie po osadzeniu obrazów cyfr we właściwości Image mamy wizualizację tworzonego projektu.

W kontrolkach przewidzianych na separatory osadź obraz dwukropka, w pozostałych osadź obraz cyfry zero

pictureBox visual studio c#

Dla każdej kontrolki PictureBox ustaw poniższe parametry

parametry picturebox visual studio c#

Po wykonaniu powyższych czynności otrzymasz taki układ formatki


wyświetlacz zegra cyfrowego

Można skompilować i uruchomić projekt, ale aplikacja jeszcze nie potrafi mierzyć czasu.

Krok 4 Odczytujemy bieżący czas

Wstępny odczyt czasu przedstawimy w kontrolce ToolStripStatuLabel, która jest składnikiem kontrolki StatusStrip.

W celach odczytu czasu napiszemy funkcję zwracającą typ string w formacie czasu o postaci 00:00:00

string czas()
{
return DateTime.Now.ToString("T");
}

Jej wywołanie osadzimy w zdarzeniu Tick kontrolki timer1

private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = czas();
}

Sprawdź czy właściwość Enabled kontrolki timer1 jest ustawiona na True

timer enabled true visual studio c#

Skompiluj i uruchom program. Prawidłowo działająca aplikacja będzie pokazywać bieżący czas w lewym dolnym rogu

odczyt czasu visual studio c#

Krok 5. Uaktualniamy obrazy cyfr w wyświetlaczu

Przygotujemy bezparametrową funkcję, która z łańcucha bieżącego czasu odczyta kolejne cyfry oraz rozpozna ich położenie w kolekcji ImageList na podstawie ich indeksu w kodzie ASCII. Ważna w tym rozwiązaniu jest znajomość indeksu znaku zero (0). Indeks ten wynosi 48.

Wykonanie takiej instrukcji id = Convert.ToInt16(t[i])-48; będzie odpowiadać indeksowi obrazu odczytanej cyfry w kolekcji ImageList


void wstawCyfry()
{
int id=0;
string t = czas();
for(int i = 0; i < t.Length; i++)
{
//odejmij 48, bo pozycja znaku 0 w kodzie ASCII to 48
if (t[i] != ':') id = Convert.ToInt16(t[i])-48;
switch (i)
{
case 0: pictureBox1.Image = imageList1.Images[id];break;
case 1: pictureBox2.Image = imageList1.Images[id];break;
case 3: pictureBox4.Image = imageList1.Images[id];break;
case 4: pictureBox5.Image = imageList1.Images[id];break;
case 6: pictureBox7.Image = imageList1.Images[id];break;
case 7: pictureBox8.Image = imageList1.Images[id];break;
}
}
}

Gotową funkcję wywołamy w zdarzeniu Tick kontrolki timer1


private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = czas();
wstawCyfry();
}

Skompiluj i uruchom program. Prawidłowo działająca aplikacja będzie pokazywać bieżący czas na wyświetlaczu.

jak napisać zegar cyfrowy w visual studio c#

Ćwiczenie sprawdzające:

Do programu dodaj mrugające separatory (mrugające dwukropki)


Dobra książka

Zobacz przepis na wyśmienite gofry