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 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 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 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 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() 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. Popis programu Obr. 4.1 Aplikace Budík 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 Label1 Label Label2 Label Budit CheckBox VScroll1 VScrollBar Cas2 Label VScroll2 VScrollBar Timer1 Timer 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 Vscroll2 VScrollBar Min 0 Max 59 Label1 Label text Hodiny: Label2 Label text Minuty: Cas1 Label Cas2 Label text text Budit CheckBox text 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 Obr. 4.2 Návrh rozmístění prvků
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 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.