HODINY V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.
Prvky na formuláři Na formuláři potřebuji jen dva prvky typu Label a k zabezpečení běhu času prvek Timer. U prvku Timer nastavíme interval na 1000 Tvorba Programu K zobrazení času použijeme vestavěné funkce TimeString a k zobrazení datumu vestavěné funkce DateString. Private Sub Timer1_Timer() lbCas.text = Time lbDatum.text = Date End Sub
Vytváření nabídky Nabídku k dané aplikaci vytvoříte pomocí ovládacího prvku MenuStrip. Objekt se umístí na podnos neviditelných součástí. Na formuláři se objeví text Type Here do kterého napíšeme text nabídky. V nabídce se pohybujeme pomocí kurzorových kláves
Přístupové klávesy v příkazech nabídky Přístupové klávesy vytvoříme tak, že v návrháři nabídek napíšete znak ampersand (&) před odpovídající písmeno v titulku nabídky či příkazu nabídky. Konvence pro nabídky •
Text krátký, výstižný, pokud možno jen jedno nebo dvě slova
•
Každému prvku v nabídce piřaďte přístupovou klávesu. Pokud možno první písmeno
•
Prvnky nabídek na téže úrovni musí mít přístupové klávesy jedinečné
•
Má-li příkaz funkci přepínače, umístěte před titulek příkazu pro stav zapnuto symbol zaškrtnutí. (Přidáte nastavením vlastnosti Checked příkazu v nabídce na True)
•
Text příkaz, který ke svému vykonání potřebuje, alby uživatel dodal předem doplňující informace, ukončete třemi tečkami(…). Tři tečky indikují, že vydá-li uživatel tento příkaz, otevře se dialogové okno.
Vytvoříme nabídku Hodiny, která bude obsahovat 2 položky, Přesný čas, Dnešní datum. Přístupové klávesy budou H, P, D. Změna pořadí nabídek Přetáhnu prvek nabídky Přejmenování prvků nabídek Pokud prvky přejmenováváme, pak by jméno mělo začínat mnu Znepřístupnění příkazu nabídky Nastavíme vlastnost menu Enabled na False Zpracování příkazů nabídek Poklepeme na položku nabídky. Otevře se nám procedura, která má na starost obsluhu nabídky. Napíšeme příkaz, který má nabídka udělat. Private Sub DnešnídatumToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DnešnídatumToolStripMenuItem.Click lbDatum.Text = DateString End Sub
Tvorba programu Zbývá naprogramovat zobrazování Času a Datumu dle přání uživatele, tedy výběrem položky z menu. Private Sub mnuCas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCas.Click mnuCas.Checked = Not (mnuCas.Checked) If mnuCas.Checked Then LbCas.Text = TimeString LbCas.Visible = True Else LbCas.Visible = False End If End Sub Private Sub mnuDatum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDatum.Click mnuDatum.Checked = Not (mnuDatum.Checked)
If mnuDatum.Checked Then LbDatum.Text = DateString LbDatum.Visible = True Else LbDatum.Visible = False End If End Sub
Ještě ukončení programu pomocí nabídky.Přidáme menu Soubor s položkou Konec. Tady si ukážeme, jak použít prvek MsgBox jako funkci. Očekávám reakci uživatele. Private Sub mnuCas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCas.Click Dim Ok As Integer Ok = MsgBox("Chceš opravdu ukončit tento báječný program?", vbYesNo) If Ok = vbYes Then Me.Close() End If End Sub
Do procedury Timer1_Tick napíšeme příkaz LbCas.Text = TimeString Aplikace Hodiny je hotova. Další funkce týkající se systémových hodin Vlastnost nebo funce Popis Now Vrací aktuální datum a čas Hour(time) Vrací počet hodin ze specifikovaného času Minute(time) Vrací počet minut ze specifikovaného času Second(time) Vrací počet sekund ze specifikovaného času Month(date) Vrací celé číslo reprezentující pořadové číslo měsíce v roce Year(date) Vrací čtyřmístný rok specifikovaného data Weekday(date) Vrací celé číslo reprezentující pořadové číslo dne v týdnu (1 = neděle, 2 = pondělí)
Budík Stává se vám, že u počítače zapomínáte na čas a potřebujete něco, co by vám v nastavenou dobu ohlásilo, že je již čas odpoutat se od monitoru? Řešení je jednoduché naprogramujte si budík.
Obr. 4.1 Aplikace Budík Popis programu Aplikace Budík bude pracovat podobně jako klasický budík. Musí umět nastavit v kolik hodin a minut bude budit. V nastavenou dobu bude budík vydávat zvukový signál.
Prvky na formuláři Jaké zvolit prvky pro zadávání hodin a minut? Jedna z možností je použít prvky typu TextBox, ale museli byste ošetřit nesprávné zadávání. „Slušná“ aplikace by neměla dovolit zadávat jiné hodnoty než celá čísla v rozmezí 0 až 23 pro hodiny a 0 až 59 pro minuty. Tento problém odstraníte tím, že použijete prvky typu VScrollBar (vertikální posuvná lišta - viz obrázek) a nastavíte jejich minimální a maximální hodnoty (vlastnosti Min a Max).Vlastnost LargeCHange nastavit na 1, pak to dosáhne hodnoty kterou nastavíme Hodnoty, kterých budou prvky VScrollBar nabývat (vlastnost Value), zobrazíte Cas1 Label VScroll1 VScrollBar
Label1 Label
Cas2 Label Label2 Label
VScroll2 VScrollBar
Budit CheckBox Timer1 Timer
Obr. 4.2 Návrh rozmístění prvků Pro zadávání volby, zda budit či nikoliv, je použit prvek typu CheckBox (nastavenou volbu obsahuje vlastnost Check). Vlastnosti Název prvku
Vlastnost
Hodnota
Timer1 Timer
Interval
2000
Vscroll1 VScrollBar
Min
0
Max
23
Min
0
Max
59
Label1 Label
text
Hodiny:
Label2 Label
text
Minuty:
Cas1 Label
text
Cas2 Label
text
Budit CheckBox
text
Vscroll2 VScrollBar
Budit
Pomocný výklad Logické operátory Nejpoužívanějšími logickými operátory jsou And (a zároveň), Or (nebo) a Not (negace). Vyhodnocování výrazů s logickými operátory probíhá podle následující tabulky: Výraz A
Výraz B
A And B A Or B Not A
True
True
True
True
False
True
False
False
True
False
False
True
False
True
True
False
False
False
False
True
Příklad: Použití logického operátoru v podmínce. If a < 0 Or a > 20 Then
Podmínka je splněna pokud proměnná a bude mít hodnotu menší než nula nebo větší než dvacet.
Tvorba programu Nastavení času Při každém pohybu posuvníku na posuvné liště (událost Change) se mění hodnota její vlastnosti Value. Tuto hodnotu zobrazte pomocí prvků typu Label. Procedura pro nastavení hodin: Private Sub VScroll1_Change() Cas1.Text = VScroll1.Value End Sub
Zjišťování aktuálního času Ve Visual Basicu je několik funkcí, pro zjišťování aktuálního času, který máte nastavený na vašem počítači. Jednou z nich je funkce TimeString. Příklad: Zobrazení aktuálního času v titulku okna provedete tím, že hodnotu funkce Time přiřadíte vlastnosti Text okna formuláře. Me.text = TimeString
Jistě jste již přišli na to, že pokud chcete, aby titulek okna sloužil jako hodiny, musíte aktuální čas pravidelně přiřazovat. To znamená napsat uvedený příkaz do obslužné procedury pro událost Timer Nyní použijte funkce, které vrací hodiny a minuty ze zadaného času. Jsou to funkce Hour a Minute. Hodin = Hour(Time) Minut = Minute(Time)
Aktuální hodiny a minuty porovnejte s nastavenými.