Programujeme vo Visual Basicu III.

Peter Hrdlica  /  06. 09. 2006, 09:44

V tomto dieli seriálu si ukážeme ovládacie prvky ChceckBox a OptionButton a naučíme sa pracovať s premennými, ktoré sú základnou súčasťou každého plnohodnotného programu.

Ovládací prvok – CheckBox

CheckBox je všeobecne známi ovládací prvok. Je to vlastne tlačidlo výberu. Najčastejšie sa používa na povolenie, alebo zakázanie rôznych nastavení.



Ukážeme si jednoduchý príklad použitia prvku CheckBox. Vytvoríme formulár s jedným tlačidlom výberu a jeho Caption nastavíme na „Povoliť koniec“ a jedno tlačidlo s popisom „Koniec“. Visible tlačidla nastavíme na False. V handlery tlačidla výberu opäť použijeme funkciu Not na zjednodušenie zdrojového kódu. Handler Command1_Click() bude obsahovať iba príkaz na ukončenie „End”.

Private Sub Check1_Click()
Command1.Visible = Not Command1.Visible
End Sub

Spustime teda program a pozrime sa ako bude fungovať. Po „zaškrtnutí“ prvku CheckBox sa nám zobrazí tlačidlo.



Prvé spustenie (po „odškrtnutí“ tlačidla výberu)



Po „zaškrtnutí“ tlačidla výberu

Vypnime program a pridajme ešte jedno tlačidlo výberu, ktoré nám bude meniť Enabled tlačidla pre koniec.

Command1.Enabled = Not Command1.Enabled


Vidíme teda, že je možné „zaškrtnúť“ i viac prvkov ChceBox, je nám teda umožnené ľubovoľne si vybrať jednu, dve, všetky, alebo žiadnu možnosť.

Ovládací prvok – OptionButton



OptionButton je veľmi podobný prvku CheckBox. Oba majú mnoho podobných vlastností a aj práca s nimi je takmer rovnaká. OptionButton je akísi prepínač. Ak je na formulári viac týchto prepínačov, vždy môže byť „zaškrtnutý“ iba jeden a zároveň jeden musí byť „zaškrtnutý“ vždy. Vytvorte teda na formulár dva, alebo viac prepínačov a overte si to sami. Ak by sme chceli použiť pre predchádzajúci príklad prvok OptionButton a nie ChechBox, bolo by tu hneď niekoľko rozdielov. Tlačidlo výberu stačí jedno, no prepínače by museli byť dva, jeden s popisom „Zviditeľniť“ a druhé „Schovať“. Ak by ste ako prví nakreslili na formulár prepínač „Zviditeľniť“ tak by tlačidlo „Koniec“ muselo byť schované, inak by nedávalo zmysel, že sme „zaškrtli“ možnosť niečo vidieť, no nič nevidíme. A takisto by sa líšil kód a to asi tak, že by trebalo zadať jednotlivé handlery pre oba prepínače, a to Command1.Visible = False, alebo True v súvislosti s tým, ktorý prepínač je aktívny. Je teda dôležité si dopredu premyslieť, ktorý z týchto ovládačov použiť.

Ovládací prvok – Frame



Frame (angl. rám) je ovládací prvok, ktorý sa často používa v spojení s prvkom OptionButton. Vysvetlíme si to na názornom príklade. Na vrhnite formulár nasledovne:



Je vidieť, že sa na formulári dá „zaškrtnúť“ viac ovládacích Prvkov OptionButton, to nám zabezpečil práve prvok Frame, je to akési ďalšie okno na formulári.


Premenné vo VB

Slovo „premenná“ je známe z matematiky a rovnako ako v matematike aj tu je premenná písmeno, ktoré je zastúpené istou hodnotou. Výraz x + y je teda súčet dvoch premenných, alebo spojenie dvoch textových reťazcov obsiahnutých v týchto dvoch premenných.

Deklarácia premenných

Aby bolo možné premennú použiť, je potrebné ju zadeklarovať, čo znamená, že určíme premennú ktorú budeme používať a priradíme jej typ, napr. Dim Meno As String (na určenie typu sa môže použiť špeciálny znak napr. Dim Meno$). Priradením typu premennej zároveň určíme koľko miesta má byť rezervovaného pre danú premennú v pamäti. Ak však neudáme typ premennej, napr. Dim Meno, tak sa implicitne nastaví (prednastaví) typ premennej na Variant. Priamo v handlery ovládacieho prvku je možné vynechať aj príkaz Dim, napr. Meno = „Peter Hrdlica“. Variant je jediná premenná, ktorá môže rovnako obsahovať text, ako aj čísla v ľubovoľnom formáte(formátom sa budeme venovať neskôr). Deklarácia môže prebehnúť na začiatku zdrojového kódu v sekcii General (globálna premenná – jej hodnoty platia pre celý program), alebo na začiatku handlera (lokálna premenná – jej hodnoty sú prístupné len v danom handlery, v inom handery môže mať premenná s rovnakým názvom inú hodnotu)Obe deklarácie sú znázornené na obrázku.



Meno premennej je jedno či viac písmen a čísel, avšak nesmie sa číslom začínať. Premenné zastupujú vždy známe hodnoty, ktoré sú dané užívateľom za behu aplikácie, programátorom pri návrhu, alebo aplikáciou samotnou pri rôznych výpočtoch.

Deklarácia samotná vyzerá takto:

Dim premenná As typ, alebo Dim premenná[znak]tento spôsob zápisu je zastaralý a používa ho už len hŕstka programátorov

Dátový typ [As typ] Znak Hodnota premennej Veľkosť
Integer – celé čísla % -32768 až 32767 2 B
Long – celé čísla & -2147483648 až 2147483647 4 B
Single – reálne číslo, pohyblivá desatinná čiarka, jednoduchá presnosť ! -3,402823 E38 až 3,402823 E38 4 B
Double – reálne číslo, pohyblivá desatinná čiarka, dvojitá presnosť
#
-1,79769313486232 D308 až 1,79769313486232 D308 8 B
Boolean – logická premenná
1 alebo 0 = True alebo False 2 B
String – textový reťazec $ 0 až 65536 znakov = písmen a čísel 1 B na každý znak
Currency – mena @ -922337203685477,5808 až 922337203685477,5807 8 B
Variant
Všetky dátové typy 16 B – číselné dáta, 22 B plus 1 B na každý znak reťazca

Pre začiatočníkov odporúčam používať príkaz Option Explicit v sekcii deklarácií. Ten zabezpečí, že ak v programe náhodou použijete nezadeklarovanú premennú, vygeneruje VB chybovú správu – najčastejšia príčina tejto chyby je preklep. Ak však tento príkaz nepoužijete bude sa daná premenná deklarovať automaticky ako Variant.

V predchádzajúcej časti seriálu sme vytvorili program, ktorý simuloval prihlasovanie užívateľov. Teraz si na ukážku práce s premennými ukážeme program, ktorý bude simulovať odhlasovanie užívateľov. Na formulár si umiestnime jedno textové pole a jedno tlačidlo. Vlastnosť Enabled tlačidla si nastavíme na False. Pre textové pole napíšeme tento handler:

Private Sub Text1_Change()
If Text1.Text <> "" Then
Command1.Enabled = True
Else
Command1.Enabled = False
End If
End Sub

Príkaz If Text1.Text <> “” Then Command1.Enabled = True znamená: „Ak textové pole nebude prázdne tak sprístupni tlačidlo“, alebo sa to dá vyjadriť aj slovami „Ak bude rozdielne od ““, čiže rôzne od ničoho“

A teraz si napíšeme handler pre tlačidlo. Vypínanie programu však trochu vylepšíme. Použijeme na to dialógové okno. Dialógové okná sú známe napr. z rôznych textových editorov. Vždy keď chcete program ukončiť a neuložili ste zmeny v texte, program zobrazí dialógové okno v ktorom sa pýta či má dané zmeny uložiť.

Funkcia dialógového okna sa nazýva MessageBox (angl. niečo ako Okno so správou) a zápis tejto funkcie je vcelku jednoduchý

MsgBox( “Text určený užívateľovi“ , typ zobrazeného okna, “Nadpis okna“)

Typ okna je možné zadať dvomi spôsobmi:
  1. Zadáte názov okna: napr. vbQuestion
  2. Zadáte číslo, ktoré určuje aký obrázok a aké tlačidlá sa majú zobraziť. Toto číslo je vždy súčtom troch podčísel: prvé určuje aké tlačidlá majú byť zobrazené, druhé určuje obrázok, a tretie určuje ktoré tlačidlo má byť prednastavené, tzn. že nie je nutné na dané tlačidlo kliknúť, ale stačí stlačiť klávesu Enter .(tento spôsob zápisu umožňuje širšie určenie výzoru okna)
Nasledujúce tabuľky ukazujú význam všetkých podčísel.

Prvé podčíslo
Číslo Tlačidlo
0 Ok
1 Ok, Storno
2 Prerušiť, Opakovať, Ignorovať
3 Áno, Nie, Storno
4 Áno, Nie
5 Opakovať, Storno

Druhé podčíslo
Číslo Obrázok
16
32
48
64

Tretie podčíslo
Číslo Tlačidlo
0 Predvolené je prvé tlačidlo
256 Predvolené je druhé tlačidlo
512 Predvolené je tretie tlačidlo

Napíšeme si teda handler tlačidla. Použijeme v ňom nie len Funkciu MessageBox, ale i lokálnu premennú typu Integer.

Private Sub
Command1_Click()
Dim i As Integer
i = MsgBox(Text1.Text & " chcete sa naozaj odhlásit?", 292, "Aplikácia")
If i = 6 Then
End
End If
End Sub

Preto aby sme VB vedeli povedať ktoré tlačidlo bolo stlačené sme si zaviedli premennú i, do ktorej sa zapíše číslo 6 ak bolo stlačené Áno a číslo 7 ak tlačidlo Nie. Podmienený príkaz If i = 6 Then ... sa jednoducho odvodí z nasledujúcej tabuľky. Číslo 292 je zložené z čísel: 4 – tlačidlá Áno a Nie, 32 – obrázok otáznika, 256 – predvolenie druhého tlačidla pre prípad, že užívateľ klikol na odhlásenie náhodou.

Číslo Tlačidlo
1 Ok
2 Storno
3 Prerušiť
4 Opakovať
5 Ignorovať
6 Áno
7 Nie


Matemtické operátory

Operátor Operácia
+ Súčet
- Rozdiel
* Súčin
/ Podiel
Celočíselné delenie
Mod Zvyšok po delení
^ Umocnenie
& Spájanie


Úlohy
  1. Vytvorte program Kalkulačka – dve textové polia a tlačidlá so základnými matematickými operáciami, po ktorých stlačení sa výsledok zobrazí v dialógovom okne. Ponámka: operácie je nutné prevádzať pomocou premenných (zápis Text1.Text + Text2.Text nevráti súčet čísel, ale spojenie textových reťazcov týchto textových polí)
  2. Upravíme program Kalkulačka tak, aby bol zabezpečený proti chybnému vstupu – zatiaľ iba prázdne textové pole – vstup písmen si ukážeme inokedy. Delenie nulou nie je možné (Ale pozor! Nula sa deliť dá)

Neprehliadnite: