28.1 Lokální proměnné a jejich duplicitní použití
28.2 Statické proměnné
28.3 Platnosti proměnných
28.4 Domácí úkol
28.5 V další lekci
28.1 Lokální proměnné a jejich duplicitní použití
Lokální proměnné nají platnost pouze v určité funkci či proceduře, ve které jsou definovány. Takovou proměnou můžeme definovat v několika funkcích aniž by se funkce nějak ovlivnily. Stejně tak, jako se neovlivňuje CD skupiny Nightwish u mě na poličce a totéž CD na poličce někoho jiného.
Private Sub Command1_Click()
Dim cislo As Long
cislo = 5
Print cislo
End Sub
Private Sub Command2_Click()
Dim cislo As Long
Print cislo
End Sub
To nám umožňuje používat časté proměnné duplicitně aniž by se navzájem ovlivňovaly. Mez takové proměnné se často řadí počítadla cyklu, ale ty se dosti často ani nedeklarují i když je to vhodné.
28.2 Statické proměnné
Další záležitost, která programátorovi usnadňuje život, je statická proměnná. Využívá se jako lokální proměnná, ale její deklarace vypadá jinak, liší se sice jen klíčovým slovem, ale toto klíčové slovo výrazně změní její vlastnosti. Dříve než budete pokrčovat ve čtení si vyzkoušejte tento kód:
Private Sub Command1_Click()
Static cislo As Long
cislo = cislo + 1
Print cislo
End Sub
Private Sub Command2_Click()
Dim cislo As Long
cislo = cislo + 1
Print cislo
End Sub
Ten je krásným příkladem, jak taková statická proměnná pracuje. Ale pro ty, co si to nemohou vyzkoušet a chtějí to naléhavě vědět, to napíšu. Její schopnost spočívá v tom, že je schopna uchovat hodnotu i když opustíme proceduru. To znamená, že při mačkání Command2 se nám budou tisknou samé 1, ale při mačkání Command1 se nám budou tisknou čísla 1, 2, 3, ….
Jejich využití si musíte najít, ale určitě se vám někdy budou hodit, pokud to myslíte s VB vážně.
28.3 Platnosti proměnných
Proměnné mají různou dobu a různý rozsah platnosti. Prvně se podíváme na proměnné veřejné (PUBLIC), ty se deklarují do modulů a jsou dostupné v celé aplikaci. Pokud je ale z jakýchkoli důvodu chceme deklarovat do dvou modulů, můžeme si mezi nimi vybírat. Pokud na to ale zapomeneme a použijeme jen název proměnné bez názvu modulu, vyhodí vám to chybu.
Private Sub Command1_Click()
Module1.Num = 3 'v pohodě
Module2.Num = 4 'v pohodě
Num = 5 'tak tohle vám neprojde
End Sub
To je to podstatné pro proměnné typu Public. Teď se podíváme na proměnné soukromé (PRIVATE). Tyto proměnné mají platnost pouze v modulu, ve kterém jsou deklarovány. To znamená, že je v jiném modulu nepoužijeme. Nebo je v jiném modulu můžeme deklarovat také, ale tyto proměnné na sobě budou nezávislé. To je také použitelné. A dostáváme se k proměnným tipu DIM. Tyto proměnné jsou velmi podobné proměnným typu PRIVATE, ale, a to je podstatné, mají obrovskou výhodu a to, že se dají deklarovat i uvnitř procedury funkce nebo uvnitř nějakého bloku kódu, pro něž jsou platné. Takový blok kódu může tvořit třeba podmínka.
28.4 Domácí úkol
Dnešní lekce nebyla příliš dlouhá, o to delší bude domácí úkol. Vytvořte slovník. Jakýkoliv slovník čehokoliv, aspoň 20 výrazů, možnost je přidávat a odebírat, vyhledávat a co vás napadne. Jak bude vypadat nechám na vás.
28.5 V další lekci
Příště nás čekají chyby. Těšte se.