- Katedra technické a informační výchovy PdF UP v

Transkript

- Katedra technické a informační výchovy PdF UP v
UNIVERZITA PALACKÉHO
PEDAGOGICKÁ FAKULTA
KATEDRA TECHNICKÉ A INFORMAČNÍ VÝCHOVY
Tvorba výukového
software v jazyce
VISUAL BASIC
(Navazuje na studijní text: Základy
programování v jazyce Visual Basic)
PhDr. MILAN KLEMENT
OLOMOUC 2002
OBSAH
11 Práce s časem a datem……………………………………………………….
1
12 Práce se selektivními položkami……………………………………………..
5
13 Práce s cykly…………………………………………………………………
9
14 Práce s animovanými objekty………………………………………………..
13
15 Práce s textovými poli………………………………………………………..
17
16 Ovládání Wordu a Excelu z Visual Basicu…………………………………..
22
17 Ovládání Internet Exploreru z Visual Basicu………………………………..
26
18 Shrnutí - výukový program ČEŠTINA………………………………………
30
Tento text je určen především posluchačům Pedagogické fakulty Univerzity Palackého
v Olomouci jako podpůrný materiál pro výuku předmětu „Tvorba výukového software“.
Jednotlivé kapitoly jsou věnovány řešení praktických příkladů. Na začátku každé
kapitoly je vždy uvedena problematika, která je vysvětlována pomocí vytváření
konkrétní aplikace čtenářem tohoto textu. Vytváření jednotlivých aplikací je popsáno
způsobem „krok za krokem“ a umožňuje čtenáři osvojení jednotlivých teoretických
znalostí, ale též i konkrétních dovedností a poznatků.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
11 PRÁCE S ČASEM A DATEM
Práce s údaji pro datum a čas
Interně je pro proměnnou typu Date alokováno 8 bajtů paměti, které obsahují spakovaný vzorek bitů
nejen pro datum, ale i pro přesný čas. Při tisku proměnné typu Date se objeví řetězec obsahující měsíc,
den, rok, hodinu, minutu a sekundu, kterou tato interní osmibajtová data reprezentují. Přesný formát
zobrazených nebo vytištěných údajů pro datum a čas je závislý na místních nastaveních operačního
systému. Ve všech vzorových výpočtech, které následují, pak předpokládám, že hodnoty pro datum a
čas jsou vždy uloženy v proměnné typu Date.
Naplnění datové proměnné
Chcete-li pro proměnné typu Date zadat přímo hodnoty pro datum a čas, uzavřete příslušnou
informaci mezi dva znaky #. Při zadávání programového řádku s údajem data v tomto formátu provede
Visual Basic kontrolu syntaxe. Pokud jsou datum nebo čas zadány nesprávně, nebo jsou použity
neexistující hodnoty, ihned se objeví chybové hlášení. Dále uvádíme příklad, v němž proměnnou D
typu Date naplníme konkrétní hodnotou data a času.
Dim d as Date
d = #11/ 7/ 03 8:00 PM#
Tímto byla proměnná d, která je typu Date naplněna uvedeným výchozím datem. Pokud chceme zjistit
aktuální systémový čas můžeme použít dvou funkcí: Now a Time. Dále je uveden příklad jak můžeme
deklarovanou proměnnou naplnit aktuálním systémovým časem.
Dim d as Date
d = Now
Příklad pro práci s časem a datem
Až dokončíme tuto lekci budeme mít k dispozici následující aplikaci, která bude zobrazovat aktuální
čas a datum. Také bude schopna vypočítat skutečný věk ve dnech, podle data narození.
Obr. 1 Aplikace Práce s časem
1) Vytvoření uživatelského rozhraní
Spusťte aplikaci Visual Basic a potvrďte vytvoření standard EXE aplikace. Na formulář
umístěte následující ovládací prvky a nastavte jim v panelu Properties následující vlastnosti:
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
1
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Obr. 2 Uživatelské rozhraní aplikace Práce s časem
Ovládací prvek
Nastavení vlastností
Funkce
Form 1
Frame 1
Caption: Práce s časem
Caption: Výpočty s datem narození
Forecolor: červená
Caption: Aktuální datum a čas
Forecolor: červená
Text: (vymazat nápis Text 1)
Alignment: 2 - Center
Text: (vymazat nápis Text 2)
Alignment: 2 - Center
Caption: Stáří ve dnech:
Formulář aplikace.
Kontejner prvků sloužících pro výpočet
skutečného stáří podle data narození ve dnech.
Frame 2
TextBox 1
TextBox 2
Command 1
Label 1
Label 2
Label 3
Timer 1
Caption: Datum narození:
Font: velikost 14 a tučně
Forecolor: zelená
Font: velikost 8 a tučně
Forecolor: modrá
Enabled: True
Interval:
10
(čas
v milisekundách)
Kontejner prvků pro zobrazení skutečného data
a času.
Slouží pro zadání data narození.
Slouží pro zobrazení stáří ve dnech.
Slouží pro provedení výpočtu skutečného věku
ve dnech.
Slouží k popisu ovládacího prvku Text 1.
Slouží k zobrazení aktuálního systémového
času.
Slouží k zobrazení aktuálního systémového
data.
Slouží pro aktivace příkazů pro práci s časem.
aktivace
2) Výpočty s datem narození
S údajem o datu je možné přímo manipulovat a provádět normální matematické operace, musíte jen
pamatovat na to, že základní jednotkou je den. Můžete tak velmi snadno vytvořit aplikaci, která
spočítá vaše stáří ve dnech, tak jak to vidíte na obrázku 1. Stačí, když jednoduše odečtete vaše datum
narození (uložené v proměnné typu Date) od funkce Now, která vrací aktuální datum.
Ovládacímu prvku Command1 přiřadíme následující kód:
Private Sub Command1_Click()
Dim a As Integer
Dim b As Date
On Error GoTo chyba
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
2
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
b = Text1
a = Now - b
Text2 = a
chyba:
If Err.Number = 13 Then MsgBox ("Špatné zadání data narození"), , "Chyba zadání"
End Sub
Zachycení chyby číslo 13 ošetřuje stav, kdy uživatel nezadá platný formát data narození, nebo jej
nezadá vůbec. Toto ošetření vyvolá prvek MsgBox, který je uveden na dalším obrázku.
Obr. 3 Chybové hlášení aplikace Práce s časem
3) Zobrazení aktuálního času
Poklepejte na ovládací prvek Timer1. Dojde k vytvoření události Timer1_Timer. Tato událost se
aktivuje vždy když nastane vlastnost Interval (ta je nastavena na 10 milisekund). To znamená, že je
ovládacím prvek zjištěn systémový čas každých 10 milisekund. Pokud by byla hodnota jiná, například
2000 byl by systémový čas zjišťován každé 2 sekundy a čas by nebyl zobrazován průběžně. Celý kód
tedy vypadá následovně:
Private Sub Timer1_Timer()
Label2.Caption = Time
End Sub
Příkaz Time zajistí zobrazení aktuálního systémového času ve vybraném intervalu. Rozdíl mezi
příkazem Time a Now spočívá v tom, že příkaz Now zjistí aktuální čas a datum pouze jednou, kdežto
příkaz Time tak činí neustále.
4) Zobrazení aktuálního data
Abychom byli schopni pomocí ovládacího prvku Label3 zobrazovat i aktuální datum je nutné
předchozí proceduru doplnit do následující podoby:
Private Sub Timer1_Timer()
Dim c As Date
Label2.Caption = Time
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
3
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
c = Now
d = Day(c)
e = Month(c)
f = Year(c)
Label3 = "Den " & d & " Měsíc " & e & " Rok " & f
End Sub
Příkaz Day slouží pro zobrazení aktuálního dne z proměnné c, která je typu Date. Příkaz Month
slouží pro zobrazení aktuálního měsíce z proměnné c, která je typu Date. Příkaz Year slouží pro
zobrazení aktuálního roku z proměnné c, která je typu Date.
Následně již stačí zobrazit zjištěné hodnoty pomocí znakového řetězce v ovládacím prvku Label3.
údaje zapsané v uvozovkách jsou statické (jsou přidány mezery mezi uvozovky, aby se jednotlivé
číselné a textové údaje nezobrazovali bezprostředně za sebe), znak & slouží pro spojení jednotlivých
číselných a textových údajů do jednoho řetězce.
Tipy pro zdokonalení aplikace
• Pokuste se o úplné zobrazení výpisu aktuálního data v ovládacím prvku Label3 pomocí
příkazů: Hour (hodina), Minute (minuta), Second (sekunda) a WeekDay (víkend).
•
Pokus se upravit aplikaci tak, aby dopočítávala počet chybějících dní do určitého data. To
provedete tak, že zadáte do proměnné typu Date pevné datum a čas a odečtete jej od funkce
Now.
•
Zamyslete se nad tím, proč je proměnná a s předchozího příkladu typu Integer. Co se stane,
pokud by byla jiného typu? Proč nefunguje výpočet počtu dní pod rok 1914?
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
4
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
12 PRÁCE SE SELEKTIVNÍMI POLOŽKAMI
Konstanty a proměnné jsou nejjednodušší instance daného datového nebo objektového typu, který
musí být určen explicitně nebo implicitně.
Datový typ určuje způsob datové reprezentace prvku v paměti a způsob interpretace této hodnoty. Ve
Visual Basicu je k dispozici dvanáct základních datových typů (Boolean, Byte, Currency, Date,
Decimal, Double, Integer, Long, Object, Single, String a Variant). Kromě nich lze definovat
vlastní datové typy.
Objektové typy se zavádějí ve Visual Basicu pro objekty, s nimiž se v něm pracuje. S jejích pomocí lze
deklarovat jednotlivé instance. Existují obecné objektové typy z nich odvozené i objektové typy
definované v modulech tříd.
Procedury jsou posloupnosti příkazů Visual Basicu, volání metod objektů nebo jiných procedur.
Aplikace je rozčleněna do procedur a kromě nich se v ní mohou vyskytovat už jen deklarační moduly.
Výrazy jsou to kombinace funkcí, operátorů, proměnných a konstant, které se vyhodnotí na hodnotu
některého datového typu.
Přihlašování uživatelů
V této úloze, která se také potřebuje téměř v každé aplikaci se seznámíte se šablonami formuláře a
uvidíte, jak se zařídí, aby psané heslo nebylo vidět. V kódu se seznámíte s rozhodovací konstrukcí,
která umožňuje rozčlenit běh programu na několik větví.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 4 Aplikace Hesla
1) Vytvoření uživatelského rozhraní
Založte nový projekt, odstraňte z něho výchozí formulář (klepněte pravým tlačítkem na
formuláři v Průzkumníkovi projektu a z místní nabídky zvolte Remove).
Zvolte Project, Add Form, vyberte šablonu Log In Dialog a stiskněte Otevřít.
Zvolte Project, Properties, na kartě General vyberte Startup Object název přihlašovacího
formuláře (v našem příkladu má název frmLogin1) a stiskněte OK.
Obr. 5 Karta Obecného dialogového okna Vlastnosti projektu
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
5
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 6 Uživatelské rozhraní aplikace Hesla
Ovládací prvek
Nastavení vlastností
Funkce
Form 1
Label 1
Caption: Přihlášení uživatele
Caption: &Jméno: (znak & potrhne
první písmeno)
Caption: &Heslo: (znak & potrhne
první písmeno)
Name: jmeno
Name: heslo
PasswordChar: * (bude místo znaků
zobrazovat znak *)
Name: cmdOK
Caption: OK
Name: cmdCANCEL
Caption: Cancel
Formulář aplikace.
Slouží k popisu ovládacího prvku Text1. (dále
textboxu upravíme jméno na jmeno).
Slouží k popisu ovládacího prvku Text2. (dále
textboxu upravíme jméno na heslo).
Slouží pro zadání uživatelského jména.
Slouží pro zadávání uživatelského hesla.
Label 2
Text1
Text2
Command 1
Command 2
Slouží pro potvrzení uživatelského jména a
hesla.
Slouží pro zrušení uživatelského jména a hesla.
2) Vytvoření procedury pro tlačítko cmdOK
Otevřete okno kódu a upravte proceduru cmdOK_Click. Upravené řádky jsou v následujícím výpisu
kurzívou, z kódu jsem odstranil původní komentáře pocházející ze šablony:
Ovládacímu prvku cmdOK přiřadíme následující kód:
Private Sub cmdOK_Click()
Dim navrat As String
navrat = Kontrola (jmeno, heslo.Text)
If "Špatně" <> navrat Then
uspech = True
Me.Hide
MsgBox navrat, , "Pozdrav oprávněnému uživateli"
Else
MsgBox "Heslo je nesprávné", , "Zpráva neoprávněnému uživateli"
jmeno.Text = ""
heslo = ""
jmeno.SetFocus
End If
End Sub
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
6
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Kontrola je veřejná funkce, kterou si napíšete do standardního modulu. Funkce vrací řetězec pozdravu,
který se zobrazí uživateli, když se přihlásí správně. Jinak se napsané hodnoty vymažou, metodou
SetFocus se aktivuje pole pro jméno uživatele, který musí napsat oba údaje znovu.
3) Vytvoření modulu s procedurou Kontrola
Zvolte Project, Add modul a napište do modulu tělo funkce Kontrola zhruba v těchto
intencích:
Public Function Kontrola(jmeno As String, heslo As String) As String
Select Case jmeno & "" & heslo
Case "Tomáš" & "tomas"
Kontrola = "Vítáme tě do systému - Tomasi"
Case "Josef" & "pepa"
Kontrola = "Vítáme tě do systému - Pepo"
Case "František" & "franta"
Kontrola = "Vítáme tě do systému - Franto"
Case Else
Kontrola = "Špatně"
End Select
End Function
Programová konstrukce Select Case umožňuje rozvětvit běh programu na jednotlivé případy
(Case). Pokud nevede na True ani jeden z případů, provedou se příkazy ve větvi Case Else,
která by neměla chybět nikdy, pokud případy Case nevyčerpávají opravdu kompletně
množinu všech možných hodnot.
4) Vytvoření vlastního formuláře, ke kterému se hlásíme
Zvolte Project, Add Form, vyberte šablonu About Dialog a stiskněte Otevřít. Do projektu se
přidá další formulář, který se jmenuje frmAbout. Na obrázku jej vidíte:
Obr. 7 Formulář frmAbout
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
7
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
5) Kódy které nás přihlásí k formuláři frmAbout
Aby se po zdárném přihlášení uživatele k aplikaci zobrazil formulář frmAbout musíme proceduru
cmdOk_Click doplnit o další řádek kódu (je napsán tučně)
Private Sub cmdOK_Click()
Dim navrat As String
navrat = Kontrola(jmeno, heslo.Text)
If "Špatně" <> navrat Then
uspech = True
Me.Hide
MsgBox navrat, , "Pozdrav oprávněnému uživateli"
frmAbout.Show
Else
MsgBox "Heslo je nesprávné", , "Zpráva neoprávněnému uživateli"
jmeno.Text = ""
heslo = ""
jmeno.SetFocus
End If
End Sub
Pokud vše správně naprogramujete, tak by jste měli vidět následující postup přihlašování (podle jmen
a hesel v příkazech Select Case:
Ok
→
Ok
→
nebo pokud je špatné
jméno či heslo:
Ok
←
Tipy pro zdokonalení aplikace
• Pokuste se o vytvoření takového přihlašovacího formuláře, kdy bude počet chybných
přihlášení limitován.
•
Pokus se upravit aplikaci tak, aby dopočítávala čas potřebný k přihlášení. Například aby po
uplynutí 15 vteřin od spuštění aplikace, pokud nebude zapsáno uživatelské jméno a heslo,
systém uživatele upozornil na vyčerpaný časový limit.
•
Zamyslete se nad tím, proč je skrytí přihlašovacího formuláře reprezentováno příkazem
Me.Hide – jak by šel tento kód nahradit?
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
8
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
13 PRÁCE S CYKLY
Cykly For...Next slouží v procedurách událostí k provádění určité skupiny příkazů po pevný, předem
daný počet opakování. Cyklus For...Next má proto smysl například při provádění několika spolu
souvisejících výpočtů, při práci s elementy na obrazovce nebo při zpracování určité množiny
vstupních dat. Cyklus For...Next je tedy ve skutečnosti pouze jistou zkratkou namísto zápisu dlouhého
seznamu programových příkazů. V tomto dlouhém seznamu bychom zapisovali určitý počet skupin
příkazů, které by prováděly v podstatě totéž; ve Visual Basicu proto nadefinujeme uvedenou skupinu
příkazů jen jednou a řekneme, že se tyto příkazy mají provést po určitý počet opakování.
Syntaxe cyklu For...Next vypadá takto:
For proměnná = začátek To konec opakované příkazy
Next proměnná
V tomto syntaktickém zápisu příkazu For...Next jsou přitom For, To a Next povinná klíčová slova.
Povinný je rovněž operátor rovná se (=). Namísto slova proměnná dosadíme jméno číselné proměnné,
která bude sledovat aktuální počet opakování cyklu; začátek a konec jsou číselné hodnoty (výrazy),
které definují zahájení a ukončení cyklického výpočtu. Řádek nebo řádky mezi příkazy For a Next již
tvoří instrukce, které se mají opakovat při každém vykonání cyklu.
Následující cyklus For...Next například na formulář vypíše následující textové řetězce ale vždy o 1
bod větším fontem (vlastnost FontSize)
Obr. 8 Cyklus For…Next v praxi
Private Sub Command1_Click()
For i = 1 To 4
FontSize = 10 + i
Print "Řádek"; i
Next i
End Sub
Uvedený cyklus je funkčně ekvivalentní čtyřnásobnému zápisu textového řetězce Řádek, ale vždy o 1
bod větším fontem.
Zobrazení čítače pomocí metody Print
Proměnná čítač funguje v proceduře události stejně jako každá jiná proměnná. Můžeme ji tedy
přiřazovat do vlastností, používat ve výpočtech jako součást výrazů nebo ji v programu zobrazovat.
Jednou z nejšikovnějších technik pro zobrazení čítače je volání metody Print. Metoda Print
představuje jistý speciální příkaz, který zobrazuje výstup na formuláři nebo jej vytiskne na připojenou
tiskárnu (viz. obr 8). Volání metody Print má následující syntaxi:
Print výraz
kde výraz je proměnná, vlastnost, textová hodnota nebo číselná hodnota (výraz) vypočtená v
proceduře.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
9
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Vytvoření aplikace Teploty
V následujícím cvičení budeme pracovat s jednorozměrným veřejným polem Teploty, do kterého
zaznamenáme nejvyšší denní teploty pro každý den sedmidenního týdne. Program tak ukazuje, že v
poli o pevné velikostí můžeme snadno zpracovat množinu příbuzných hodnot. Jednotlivé teploty
budeme do pole přiřazovat pomocí funkce InputBox, kterou voláme v cyklu For...Next. Na elementy
pole se v cyklu odkazujeme pomocí čítače cyklu. Nakonec voláme v dalším cyklu metodu Print,
pomocí níž zobrazíme obsah pole na formuláři; současně vypočteme a zobrazíme průměr zadaných
nejvyšších teplot.
V této úloze, která se také potřebuje téměř v každé aplikaci kde se pracuje se vstupními hodnotami se
seznámíte s prvkem InputBox, který slouží pro zadávání hodnot pro výpočty. Prvek InputBox je
inverzním prvkem k prvku MsgBox.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 9 Aplikace Teploty
1) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 10 Uživatelské rozhraní aplikace Teploty
Ovládací prvek
Nastavení vlastností
Funkce
Form 1
Command 1
Command 2
Caption: Teploty
Caption: &Zadej teploty (znak &
slouží k potržení prvního písmene a
tím k využití kláves ALT + K)
Caption: &Zobraz teploty
Command 3
Caption: &Konec
Formulář aplikace.
Slouží vyvolání vstupního pole InputBox a tím
k zadávání maximálních teplot v jednotlivých
dnech.
Slouží pro zobrazení jednotlivých teplot a
výpočtu průměrné teploty v deném týdnu.
Ukončí běh aplikace.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
10
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Jestliže v programu zobrazujete informace přímo na formulář pomocí metody Print, musíte vždy do
vlastnosti AutoRedraw tohoto formuláře přiřadit hodnotu True. Tato hodnota znamená, že pokud
formulář překryje na obrazovce jiné okno, Visual Basic jej po obnovení překreslí.
2) Vytvoření modulu pro deklaraci pole
V nabídce File klepněte na příkaz Add Module a poté klepnutím na tlačítko Open vytvořte nový
standardní modul, který bude obsahovat deklaraci pole.
V okně kódu se objeví nový prázdný standardní modul. Do standardního modulu zapište následující
příkazy:
Option Base 1
Public teploty(7) As Variant
Příkaz Option Base změní všem polím v programu index prvního elementu pole z nuly na jedničku.
Druhý příkaz pak vytvoří veřejné pole se jménem teploty (pole bude typu Variant), které bude
obsahovat sedm prvků. Pole je deklarováno jako veřejné, takže bude k dispozici v celém programu.
3) Vytvoření procedury pro zadávání teplot
Uzavřete okno kódu se standardním modulem a na formuláři poklepejte na tlačítko Zadej teploty.
V okně kódu se objeví procedura události Command1_Click.
Do procedury události zapište následující programové příkazy, které v cyklu od uživatele vyžádají
zadání údajů o teplotě a načtené hodnoty uloží do pole:
Private Sub Command1_Click()
Cls
hlášení = "Zadej nejvyšší teplotu dne"
For i = 1 To 7
titulek = "Den
" & i
teploty(i) = InputBox(hlášení, titulek)
Next i
End Sub
Volání metody Cls na začátku této procedury události vymaže z formuláře veškerý vystup předchozích
příkazů Print. V programu tak můžeme teploty zadávat opakovaně a na formuláři se zobrazí pouze
aktuální údaje.
Čítačem cyklu For...Next je proměnná i, kterou zároveň využíváme jako index načítaného elementu
pole teplot. Uvedená proměnná nabývá tudíž hodnot od 1 do 7. Vstupní údaje načítáme od uživatele
pomocí funkce InputBox; argumenty tvoří proměnné hlášení a titulek.
4) Vytvoření procedury pro zobrazení teplot
V okně kódu otevřete rozbalovací seznam objektů a klepněte na objekt Command2. Do procedury
události Command2_Click zapište následující příkazy:
Private Sub Command2_Click()
Dim celkem As Integer
Print "Nejvyšší teploty týdne"
Print
For i = 1 To 7
Print "Den
"; i, teploty(i)
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
11
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
celkem = celkem + teploty(i)
Next i
Print
Print "Průměr z nejvyšších teplot:
"; celkem / 7
End Sub
V této proceduře události zobrazujeme na formuláři informace z pole teploty, a to pomocí metody
Print. V cyklu For...Next projdeme jednotlivé elementy pole a příkazem
celkem = celkem + teploty(i)
vypočteme součet všech hodnot. Poslední řádek v proceduře události zobrazí průměr nejvyšších teplot,
který vypočte vydělením součtu teplot a počtu dní v týdnu.
5) Vytvoření procedury pro ukončení programu
V okně kódu otevřete ještě jednou rozbalovací seznam objektů a klepněte na objekt Command3. Do
procedury události Command3_Click napište tento kód:
Private Sub Command3_Click()
End
End Sub
Tipy pro zdokonalení aplikace
•
Zamyslete se nad tím, proč je nutné proměnnou celkem deklarovat jako typ Integer a ne jako
datový tip Variant?
•
Pokuste se daný kód cyklů zapsat pomocí cyklu typu Do.
Alternativou k cyklu For...Next je cyklus typu Do. Tento cyklus provádí určitou skupinu příkazů
opakovaně tak dlouho, až jistá podmínka nabude v cyklu hodnoty True. Cykly Do mají tedy smysl
zejména v případech, kdy nemůžeme dopředu určit počet opakování.
Cyklus Do má několik možných formátů, které se liší místem a způsobem vyhodnocení podmínky
opakování cyklu. Nejobvyklejší syntaxe je:
Do While podmínka
blok příkazů, které se budou opakovaně provádět
Loop
Následující cyklus Do tak například provádí uvažované zpracování jmen, která končí zadáním textu
„Konec":
Do While Jméno <> "Konec"
Jméno = InputBox("Zadejte jméno nebo text Konec pro ukončení.“)
If Jméno <> "Konec" Then Print Jméno
Loop
Podmínkovým příkazem je v tomto cyklu výraz Jméno <> „Konec". Visual Basic interpretuje uvedený
cyklus způsobem, který bychom mohli popsat slovy: „opakuj příkazy tak dlouho, dokud proměnná
Jméno neobsahuje slovo Konec".
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
12
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
14 PRÁCE S ANIMOVANÝMI OBJEKTY
Jak vytvořit indikátor průběhu
Nejlepší způsob, jak se naučit pracovat s ovládacím prvkem ProgressBar, (součástí knihovny
Microsoft Windows Common Controls (COMCTL32.OCX), je tvořit jednoduchou aplikaci a krok po
kroku si ji vyzkoušet. Následující příklad vytváří 3minutový minutník, který se hodí při vaření vajíček
na měkko a zároveň dobře demonstruje použití ovládacího prvku ProgressBar.
Vytvoření aplikace Minutovník pro vaření vajec
V následujícím cvičení budeme tedy pracovat s objektem ProgressBar. Proto bude nutné si
jej přidat do projektu pomocí volby Components. Tu spustíte tak, že pravým tlačítkem myši
kliknete na lištu se standardními objekty (Label, Command atd…), z místní nabídky vyberete
možnost Components na kterou kliknete levým tlačítkem myši. Dojde k zobrazení karty
Components ve které vyhledejte objekt Microsoft Windows Common Controls 5.0 (SP 2).
Zaškrtněte políčko před jeho názvem a stiskněte tlačítko OK. Dojde k tomu, že k vašemu projektu se
přidá několik nových objektů.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 11 Aplikace Minutovník pro vaření vajec
1) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 11 Uživatelské rozhraní aplikace Minutovník pro vaření vajec
Ovládací prvek
Form 1
Command 1
Label 1
ProgressBar 1
Timer 1
Nastavení vlastností
Funkce
Caption: Minutovník pro vaření Formulář aplikace.
vajec
Caption: &Start (znak & slouží Slouží spuštění aplikace.
k potržení prvního písmene a tím
k využití kláves ALT + K)
Slouží pro zobrazení průběhu vaření vajec
Alingment: 2 –Center
textovým hodnocením: Vaří se… a Hotovo.
Font: Velikost 14 a tučně
ForeColor: červená
Zobrazuje průběh vaření..
Enabled: False
Aktivuje časování průběhu vaření.
Interval: 1000 (údaj v milisek.)
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
13
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
2) Vytvoření deklarační části procedur
Pomocí Project Exploreru, na kterém najdete tlačítko View Code se přepněte do okna pro zapisování
kódů.
V okně kódu se objeví nový prázdný standardní modul. Do deklarační části kódu zapište následující
příkazy:
Option Explicit
Private start As Single
Příkaz Option Explicit změní všem polím v programu index prvního elementu pole na nulu. Druhý
příkaz pak vytvoří proměnnou se jménem start, která je typu Single. Protože je tento kód umístěn
v dekladarční části formuláře, je proměnná start přístupná všem procedurám na formuláři.
3) Vytvoření procedury tlačítka Command1
Uzavřete okno kódu a na formuláři poklepejte na tlačítko Start.
V okně kódu se objeví procedura události Command1_Click.
Do procedury události zapište následující programové příkazy, které slouží pro načtení, zobrazení a
naplnění jednotlivých prvků na formuláři:
Private Sub Command1_Click()
ProgressBar1.Value = 0
start = 0
Timer1.Enabled = True
End Sub
Volání metody ProgressBar1.Value = 0 na začátku této procedury události vymaže
z uvedeného ovládacího prvku modré čáry průběhu vaření.
Volání metody Timer1.Enabled = True dosáhneme zapnutí časovače událostí
Timer1.
4) Vytvoření procedury pro prvek Timer1
Uzavřete okno kódu a na formuláři poklepejte na ovládací prvek Timer1.
V okně kódu se objeví procedura události Timer1_Timer.
Do procedury události zapište následující programové příkazy, které slouží pro načtením a
zobrazení jednotlivých obsahú ovládacích prvků v závislosti na časovači:
Private Sub Timer1_Timer()
Dim procenta
If start = 0! Then
start = Timer
End If
procenta = 1000 * (Timer - start) / 180
If procenta < 100 Then
ProgressBar1.Value = procenta
Label1.Caption = "Vaří se..."
Else
ProgressBar1.Value = 100
Label1.Caption = "Hotovo !"
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
14
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Beep
Timer1.Enabled = False
End If
End Sub
5) Úprava aplikace Minutovník pro vaření vajec
I když aplikace funguje, ukážeme si jak je možné nahradit objekt ProgressBar ovládacím prvkem
PictureBox. Tím vznikne „sloupcový“ postup namísto čtverečkového.
Vymažte z formuláře ovládací prvek ProgressBar a to tak, že si vyvoláte jeho místní nabídku a
kliknete na volbu Delete.
Na formulář umístěte ovládací prvek PictureBox1. do tohoto PictureBoxu vložte další PictureBox2 jak
je uvedeno na obrázku 12.
Obr. 12 Upravené uživatelské rozhraní aplikace Minutovník pro vaření vajec
Ovládací prvek
Picture 1
Picture 1
Nastavení vlastností
BackColor: bílá
ScaleWidth: 100
ScaleHeight: 1
BackColor: modrá
Border: 0 - None
Funkce
Tvoří pozadí indikátoru průběhu.
Tvoří indikátor průběhu.
6) Úprava kódu tlačítka Command 1
Vytvořený kód upravte tak, jak je níže uvedeno. Tyto úpravy jsou minimální, ale záleží na jejich
přesném použití.
Private Sub Command1_Click()
start = 0
Timer1.Enabled = True
End Sub
7) Úprava kódu ovládacího prvku Timer 1
Vytvořený kód upravte tak, jak je níže uvedeno. Tyto úpravy jsou minimální, ale záleží na jejich
přesném použití.
Private Sub Timer1_Timer()
Dim procenta
If start = 0! Then
start = Timer
End If
procenta = 1000 * (Timer - start) / 180
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
15
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
If procenta < 100 Then
Picture2.Move 0,0,procenta,1
Label1.Caption = "Vaří se..."
Else
Picture2.Move 0,0,100,1
Label1.Caption = "Hotovo !"
Beep
Timer1.Enabled = False
End If
End Sub
8) Vytvoření nové procedury formuláře Form_Load
Přepněte se do objektového zobrazení a dvakrát rychle klikněte na formulář aplikace. Aktivuje se
procedura Form_Load. Do té zapište následující kód.
Private Sub Form_Load
Picture2.Move 0, 0, 0, 0
End Sub
Tipy pro zdokonalení aplikace
•
Zamyslete se nad tím jak je možné využít příkaz Move pro jiné aplikace
•
Pokuste se daný příklad modifikovat tak, aby se zobrazovali oba indikátory posuvu na jednom
formuláři..
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
16
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
15 PRÁCE S TEXTOVÝMI POLI
Volání procedury Sub
Volání procedury Sub je velice jednoduché: stačí v programu zapsat jméno procedury a poté seznam
argumentů, které procedura Sub vyžaduje. Následující příkaz tak například představuje volání výše
definované procedury PřidejJménoDoSeznamu, přičemž jako argument předáváme řetězcový literál
(předáváme jej tedy hodnotou):
PřidejJménoDoSeznamu "Zaremba"
Podobně bychom mohli stejnou proceduru zavolat s proměnnou (kterou předáváme odkazem);
upravené volání bude vypadat takto:
PřidejJménoDoSeznamu NovéJméno$
V obou případech procedura PřidejJménoDoSeznamu správně přidá jméno do seznamu. Hodnotu
argumentu zde uvnitř procedury nijak nemodifikujeme, takže i volání s argumentem předaným
hodnotou a odkazem dává stejné (nebo podobné) výsledky.
V následujícím příkladu budeme proceduru Sub volat několikrát; na první pohled zde vidíme, že si
skutečně ušetříme psaní velkého množství programového kódu:
PřidejJménoDoSeznamu "Zaremba"
PřidejJménoDoSeznamu "Zátopek"
Do
NovéJménot$ = InputBox("Zadej jméno do seznamu.", "Přidáni jména")
PřidejJménoDoSeznamu NovéJméno$
Loop Until NovéJméno = ""
Zde tedy uživatel může do seznamu přidávat libovolný počet nových jmen. V dalším cvičení zkusíme
pomocí procedury Sub ošetřit další možný typ vstupu do programu.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 13 Aplikace Rozřazení žáků do tříd
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
17
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
1) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 14 Uživatelské rozhraní aplikace Rozřazení žáků do tříd
Ovládací prvek
Nastavení vlastností
Form 1
Label 1
Caption: Přiřazení žáků do skupin
Caption: Dobří žáci
Font: Velikost 8 a tučně
Caption: Špatní žáci
Font: Velikost 8 a tučně
Text: žádny text (pole je prázdné)
MultiLine: True
ScrollBars: 2 – Vertical
TabStop: False
Locked: True
Text: žádny text (pole je prázdné)
MultiLine: True
ScrollBars: 2 – Vertical
TabStop: False
Locked: True
Caption: &Přidat jméno (znak &
slouží k potržení prvního písmene)
Caption: &Přidat jméno (znak &
slouží k potržení prvního písmene)
Caption: &Konec (znak & slouží
k potržení prvního písmene)
Label 2
Text 1
Text 2
Command 1
Command 2
Command 3
Funkce
Formulář aplikace.
Slouží pro popis ovládacího prvku Text 1.
Slouží pro popis ovládacího prvku Text 2.
Slouží pro zobrazení seznamu dobrých žáků.
Slouží pro zobrazení seznamu špatných žáků.
Slouží přidání jména do seznamu dobrých
žáků.
Slouží přidání jména do seznamu špatných
žáků.
Slouží pro ukončení aplikace.
2) Vytvoření modulu
V nabídce Project klepněte na příkaz Add Module a poté klepněte na tlačítko Open. V okně kódu se
objeví nový standardní modul.
Do standardního modulu zapište následující příkazy, které tvoří proceduru
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
18
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Sub přidatjméno(skupina, návrat)
hlášení = "Zadej jméno žáka skupiny " & skupina & "."
nj = InputBox(hlášení, "Vkládání jmen žáků")
znaky = Chr(13) + Chr(10)
návrat = nj & znaky
End Sub
Tato obecná procedura typu Sub si nejprve pomocí funkce InputBox vyžádá od uživatele zadání
jména žáka. Při svém volání přebírá dva argumenty: řetězec skupina který obsahuje označení skupina
žáků, a prázdnou řetězcovou proměnnou návrat, která zpět do volající procedury události vrátí
naformátované jméno zaměstnance.
Před navrácením naformátovaného jména žáka připojíme k řetězci znaky nového řádku (dvojice znaků
návratu vozíku a posunu válce), takže každé jednotlivé jméno se do textového pole zapíše na nový
řádek. Tento postup je dosti obecný a můžete jej využít v libovolném textovém poli.
3) Vytvoření procedury tlačítka Command1
Uzavřete okno kódu a na formuláři poklepejte na první příkazové tlačítko Přidat jméno (tedy na
tlačítko pod textovým polem Dobří žáci). Do procedury události Command1_Click napište následující
programové příkazy:
Private Sub Command1_Click()
přidatjméno "Dobří žáci", zařazení1
Text1.Text = Text1.Text & zařazení1
End Sub
Do volání procedury přidatjméno zde předáváme dva argumenty, z toho jeden hodnotou („Dobří
žáci") a druhý referencí (zařazení1). Na druhém řádku převezmeme hodnotu z argumentu předaného
referencí a přidáme ji na konec textového pole Text1. Spojení nového jména a dosavadního obsahu
textového pole provádíme pomocí operátoru zřetězení (&).
4) Vytvoření procedury tlačítka Command2
V okně kódu otevřete rozbalovací seznam objektů a klepněte na objekt Command2. Do procedury
události Command2_Click napište následující programové příkazy:
Private Sub Command2_Click()
přidatjméno "Špatní žáci", zařazení2
Text2.Text = Text2.Text & zařazení2
End Sub
Tato procedura události je v podstatě stejná jako procedura události Command1_Click; do procedury
přidatjméno však předává text „Špatní žáci" a nakonec aktualizuje textové pole Text2. Volané
proceduře předáváme také jinou lokální proměnnou, která má vhodnější intuitivní jméno.
5) Vytvoření procedury tlačítka Command3
Ještě jednou otevřete rozbalovací seznam objektů a tentokrát klepněte na objekt Command3. Do
procedury události Command3_Click napište příkaz End a okno kódu uzavřete.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
19
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
DOPLNĚNÍ CYKLŮ DO
Jak se vyvarovat nekonečné smyčky
Cykly typu Do jsou svojí povahou jaksi „neúnavné". Z toho vyplývá, že pro každý cyklus musíme
pečlivě stanovit testovací podmínku, aby se tento cyklus mohl opravdu ukončit. Pokud se podmínkový
test opakování nikdy nevyhodnotí na False, bude cyklus pokračovat donekonečna a program již nikdy
nebude moci reagovat na vstup od uživatele. Uvažujme následující příklad:
Do
číslo = InputBox("Zadejte
znamená
konec.")
číslo = čislo * číslo
Print číslo
Loop While číslo >= 0
číslo
pro
určeni
druhé
mocniny.
-1
V tomto cyklu uživatel zadává jedno číslo za druhým. Program každé zadané číslo umocní na druhou a
vypočtenou druhou mocninu vypíše na formulář. Uživatel však naneštěstí z programu nemůže
vyskočit, i kdyby už nakrásně chtěl počítač vypnout, protože podmínka ukončení programu uvedená v
nápovědě jednoduše nefunguje. Pokud totiž uživatel zadá číslo -1, program je umocní na druhou a do
proměnné Číslo tak přiřadí hodnotu 1. (Problém můžeme napravit definicí jiné podmínky ukončení
cyklu.) Při psaní cyklů Do si tedy musíte na takovéto nekonečné smyčky dávat pozor. Při důkladném
testování programu vám ale naštěstí neuniknou.
1) Vytvoření programu pro cyklus Do
Následující příklad uvádí cyklus Do, který provádí přepočet teploty ve stupních Fahrenheita na stupně
Celsia. Program je velice jednoduchý: v cyklu vždy pomocí funkce InputBox vyžádá od uživatele
zadání teploty, převede ji na druhou jednotku a výsledek zobrazí v okně se zprávou. Uvedený program
současně demonstruje skrytí formuláře přiřazením hodnoty False do jeho vlastnosti Visible.
2) Vytvoření uživatelského rozhraní
V nabídce File klepněte na příkaz New Project a poté klepněte na tlačítko OK. Visual Basic zobrazí v
programovém prostředí nový, prázdný projekt.
Otevřete okno Properties a do vlastnosti Visible formuláře zapište hodnotu False (Visible = False).
Formulář, do jehož vlastnosti Visible jsme přiřadili hodnotu False, Visual Basic za běhu programu
skryje a nebude viditelný. Tím je v podstatě za běhu programu neviditelné celé uživatelské rozhraní
programu - nemůžeme zobrazit žádné objekty. Něco takového zřejmě příliš často nevyužijete; skrytí
formuláře má ale smysl například tehdy, pokud má určitá část programu nebo celý program pracovat
na pozadí.
3) Vytvoření programového kódu
Tento program vždy pouze načte údaj ve stupních Fahrenheita a převede je na stupně Celsia, takže
skrytí formuláře má smysl. Celý vstup totiž ošetříme jedním voláním funkce InputBox a výsledky
zobrazíme do okna se zprávou voláním funkce MsgBox.
Procedura události Form Load se provádí vždy při spuštění programu. Poklepejte na formulář.
V okně kódu se objeví procedura události Form_Load. V našem programu bude obsahovat veškerý
programový kód.
Do procedury události zapište následující programové příkazy:
Prompt = "Zadejte teplotu ve stupních Fahrenheita."
Do
FTemp = InputBox(Prompt, "Stupně Fahrénheita")
If FTemp <> "" Then
Celsius = Int((FTemp + 40) * 5 / 9 - 40)
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
20
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
MsgBox (Celsius), , "Teplota ve stupních Celsia"
End If
Loop While FTemp <> ""
End
Těchto devět řádků programového kódu provádí veškeré výpočty našeho programu. Na prvním řádku
přiřadíme textový řetězec do proměnné Prompt, která poté definuje instrukci pro uživatele ve volání
funkce InputBox. Cyklus Do načítá opakovaně od uživatele teplotu ve stupních Fahrenheita, převádí
zadaný údaj na stupně Celsia a nakonec se zobrazuje pomocí funkce MsgBox. Cyklus se provádí tak
dlouho, dokud uživatel neklepne v okně InputBox na tlačítko Cancel (Storno). Tímto tlačítkem se do
proměnné FTemp vrátí prázdný řetězec. V podmínkovém testu na konci cyklu tudíž cyklus porovnává
proměnnou FTemp s prázdným řetězcem. Programový pňlcaz
Celsius = Int((FTemp + 40) * 5 / 9 - 40)
představuje převod ze stupňů Fahrenheita na stupně Celsia. Příkaz obsahuje standardní vzorec pro
převod, do proměnné Celsius však pomocí funkce Int přiřazuje pouze celé číslo bez desetinných míst.
(Veškeré údaje vpravo od desetinné čárky se tedy odstraní.) Díky tomuto oříznutí hodnoty ztrácíme
určitou přesnost, na druhé straně ale nikdy nedostaneme dlouhé a nepěkně vyhlížející údaje jako
například 21,11111111111111 stupňů Celsia (tuto hodnotu bychom dostali převodem ze 70 stupňů
Fahrenheita).
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
21
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
16 OVLÁDÁNÍ WORDU A EXCELU Z VISUAL BASICU
Základy práce s programy Office
Při volání metody CheckSpelling z programu napsaného ve Visual Basicu budeme postupovat podle
dále uvedených základních kroků. Uvedené postupy jsou poměrně obecné a platí pro většinu
aplikačních objektů, takže podle těchto zásad budete moci do programů začlenit funkce většiny
aplikací, které mechanismus Automation podporují.
Krok 1. Příkazem References z nabídky Project přidejte do projektu odkazy na veškeré potřebné
objektové knihovny.
Krok 2. Napište program ve Visual Basicu. V proceduře události, která má přímo využívat objekt
mechanismu Automation, vytvořte příkazem Dim objektovou proměnnou a dále pomocí funkce
CreateObject zaveďte do této objektové proměnné objekt mechanismu Automation:
Dim X As Object
'X je zde jméno proměnné
Set X = Create0bject("Word.Application")
Krok 3. V proceduře události dále použijte odpovídající metody a vlastnosti objektu Automation;
správnou syntaxi najdete v souborech nápovědy, v Object Browseru nebo v dokumentaci k objektové
aplikaci:
X.Visible = False
X.Documents.Add
X.Selection.Text = Text1.Text
X.ActiveDocument.CheckSpelling
Text1.Text = X.Selection.Text
'skrytí Wordu
'otevření nového dokumentu
'zkopírování pole do dokumentu
'spuštění kontroly pravopisu
'zpětné zkopírování výsledků
Krok 4. Po dokončení práce s aplikačním objektem příslušnou aplikaci ukončete a objektovou
proměnnou uvolněte z paměti; tím se šetří místo v paměti:
X.Quit
Set X = Nothing
'ukončeni Wordu
'uvolněni objektové proměnné
Vytvoření osobní kontroly pravopisu
V následujícím cvičení vytvoříme aplikaci, která pomocí mechanismu kontroly pravopisu v Microsoft
Wordu kontroluje pravopis textu zapsaného ve Visual Basicu v textovém poli. Celý program sestavíme
přímo ve Visual Basicu; funkce Microsoft Wordu budeme volat vzdáleně prostřednictvím mechanismu
Automation.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 15 Aplikace Osobní kontrola pravopisu
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
22
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
1) Propojení projektu s programem Word
V nabídce Project klepněte na příkaz References. Zkontrolujte, jestli je vedle odkazu na objektovou
knihovnu Microsoft Word 9.0 Object Library uvedena značka zatržení, a poté klepněte na tlačítko OK.
Objektová knihovna Microsoft Word 9.0 Object Library nabízí přístup k objektům, metodám a
vlastnostem, které dává k dispozici objektová aplikace Microsoft Word.
Odkazy na objektové knihovny musíme příkazem References přidávat do každého nového projektu
explicitně.
2) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 16 Uživatelské rozhraní aplikace Osobní kontrola pravopisu
Ovládací prvek
Nastavení vlastností
Form 1
Label 1
Caption: Osobní kontrola pravopisu
Caption: Do textového pole napište
jedno více slov a poté klikněte na
tlačítko Pravopis
Text: žádny text (pole je prázdné)
MultiLine: True
ScrollBars: 2 – Vertical
Caption: &Pravopis (znak & slouží
k potržení prvního písmene)
Caption: &Konec (znak & slouží
k potržení prvního písmene)
Text 1
Command 1
Command 2
Funkce
Formulář aplikace.
Slouží pro popis ovládacího prvku Text 1.
Slouží pro
pravopisu
zadávání
slov
pro
kontrolu
Slouží pro kontrolu pravopisu slova zapsaného
v ovládacím prvku Text 1.
Slouží pro ukončení aplikace.
3) Vytvoření programového kódu tlačítka Command 1
První příkazové tlačítko bude spouštět Microsoft Word a pomocí metody CheckSpelling bude
kontrolovat pravopis textu v textovém poli; druhé příkazové tlačítko bude sloužit k ukončení
programu.
Poklepáním na tlačítko Pravopis (Check Spelling) otevřete v okně kódu proceduru události
Command1_Click. Do procedury události zapište následující programový kód:
Dim X As 0bject
'vytvoření objektové proměnné Wordu
Set X = Create0bject("Word.Application")
X.Visible = False
'skryti Wordu
X.Documents.Add
'otevření nového dokumentu
X.Selection.Text = Text1.Text
'zkopírování pole do dokumentu
X.ActiveDocument.CheckSpelling 'spuštěni kontroly pravopisu
Text1.Text = X.Selection.Text
'zpětné zkopírováni výsledků
X.Quit
'ukončeni Wordu
Set X = Nothing
'uvolnění objektové proměnné
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
23
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Tyto příkazy vytvoří v proceduře události objekt aplikace Word z mechanismu Automation, dále
Microsoft Word spustí, nastaví určité vlastnosti objektu Word, zavolají příslušné metody Wordu a
nakonec uvolní paměť, kterou objekt zabíral. Samotný Word se spustí automaticky při prvním odkazu
na objektovou proměnnou. Poté pomocí vlastnosti Selection.Text Wordu zkopírujeme obsah textového
pole do dokumentu Word.
Při zavolání metody CheckSpelling spustí Word kontrolu pravopisu a zjistí, jestli se v textu dokumentu
nacházejí nějaké pravopisné chyby. Jestliže Word nalezne chybu, objeví se dialog Spelling And
Grammar který uživateli umožní oprav chyby. Word postupně kontroluje všechna slova v textovém
poli, a to i když textové pole obsahuje několik řádků textu. Po dokončení kontroly se zpět do
textového pole ve Visual Basicu zkopírují opravená slova a aplikace Microsoft Word se uzavře.
Poslední příkaz Set na konci procedury události Commandl_Click uvolní paměť objektové proměnné.
4) Vytvoření procedury tlačítka Command2
Uzavřete proceduru události Command1_ Click a poklepejte na příkazové tlačítko Konec. Do
procedury události napište příkaz End a poté okno kódu uzavřete. Tím je program pro kontrolu
pravopisu hotov.
VYTVOŘENÍ PROGRAMU PRO VÝPOČET HYPOTÉKY
Microsoft Excel obsahuje celou řadu dosti složitých výpočtových funkcí a nástrojů datové analýzy,
které dokáží významně obohatit programy napsané ve Visual Basicu. V následující rutině se pomocí
rekurzivní funkce Pmt programu Microsoft Excel vypočítávají splátky hypotečního úvěru. V českém
Excelu jsou jména funkcí počeštěna a funkce Pmt se jmenuje Platba. Jako vstupní údaje předáváme
do programu úrokovou míru, dobu splatnosti úvěru a částku jistiny; uživatel je zadává ve Visual
Basicu pomocí textových polí.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 17 Aplikace Hypotéka
1) Propojení projektu s programem Excel
V nabídce Project klepněte na příkaz References. Zkontrolujte, jestli je vedle odkazu na objektovou
knihovnu Microsoft Excel9.0 Object Library uvedena značka zatržení, a poté klepněte na tlačítko OK.
Objektová knihovna Microsoft Excel 9.0 Object Library nabízí přístup k objektům, metodám a
vlastnostem, které dává k dispozici objektová aplikace Microsoft Excel.
Odkazy na objektové knihovny musíme příkazem References přidávat do každého nového projektu
explicitně.
2) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
24
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Obr. 18 Uživatelské rozhraní aplikace Hypotéka
Ovládací prvek
Nastavení vlastností
Funkce
Form 1
Label 1
Label 2
Label 3
Text 1
Text 2
Text 3
Command 1
Caption: Hypotéka
Caption: Úroková sazba
Caption: Počet měsíců
Caption: Jistina
Text: žádny text (pole je prázdné)
Text: žádny text (pole je prázdné)
Text: žádny text (pole je prázdné)
Caption: &Výpočet (znak & slouží
k potržení prvního písmene)
Caption: &Konec (znak & slouží
k potržení prvního písmene)
Formulář aplikace.
Slouží pro popis ovládacího prvku Text 1.
Slouží pro popis ovládacího prvku Text 2.
Slouží pro popis ovládacího prvku Text 3.
Slouží pro zadávání míry úrokové sazby.
Slouží pro zadávání doby splatnosti .
Slouží pro zadávání výšky hypotéky..
Slouží pro provedení výpočtu měsíční splátky.
Command 2
Slouží pro ukončení aplikace.
3) Vytvoření programového kódu tlačítka Command 1
Zde je tedy procedura události, která vypočítá splátky hypotéky prostřednictvím Excelu:
Private Sub Command1_Click()
Dim xl As Object
Dim platba
If Textl.Text <> "" And Text2.Text <> "" _
And Text3.Text <> "" Then
Set xl = CreateObject("Excel.Sheet")
platba = xl.application.WorksheetFunction.Pmt _
(Text1.Text / 12, Text2.Text, Text3.Text)
MsgBox "Měsíční splátka je " & _
Format(Abs(platba), "Kč#.##"), , "Hypotéka"
xl.application.quit
Set xl = Nothing
else
MsgBox "Musíte vyplnit všechny tři údaje", , "Hypotéka"
End If
End Sub
Tato rutina nejprve vytvoří objektovou proměnnou se jménem xl a přiřadí do ní objekt Excel.Sheet.
Poté prostřednictvím objektu WorksheetFunction z Excelu zavolá funkci Pmt (Platba) a vypočtenou
hodnotu splátky hypotéky převede pomocí funkce Abs (absolutní hodnota) na kladné číslo. V Excelu
se totiž splátky úvěrů zobrazují zpravidla jako záporná čísla (pasivní položka), na formuláři ve Visual
Basicu je však budeme chtít zobrazit jako kladnou hodnotu. Pokud některý z povinných argumentů
funkce Pmt (Platba) chybí, zobrazí procedura zprávu „Musíte vyplnit všechny tři údaje".
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
25
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
17 OVLÁDÁNÍ INTERNET EXPLORERU Z VISUAL BASICU
Načítání dokumentů HTML ze sítě World Wide Web
Pro většinu programátorů je komunikace aplikací s Intemetem velice důležitá. Minimální úroveň
přístupu na Web bude nejspíše v aplikaci napsané ve Visual Basicu představovat možnost načítání
souborů ze serveru na klientový počítač. Server je počítač, který v tomto případě běží někde na
Intemetu a který spravuje neboli hostí webovou stránku a další služby. Klientem pak budeme rozumět
jiný počítač s přístupem na Internet, který vyžaduje informace od serveru (využívá jeho služeb).
Klientově požadavky na informace mohou vznikat například v programu prohlížeče, jako je Microsoft
Intemet Explorer, nebo v programu napsaném ve Visual Basicu.
Jestliže tedy chceme dát programu ve Visual Basicu (a tím i jeho uživateli) možnost vyžadovat
informace z intemetového serveru, můžeme využít ovládací prvek ActiveX se jménem Microsoft
Internet Controls, který je součástí Visual Basicu ve.
Ovládací prvek Microsoft Internet Controls načítá soubory pomocí dvou nejpoužívanějších protokolů
Intemetu: HTTP a FTP. Protokol HTTP se nejčastěji používá k přenosu dokumentů HTML (Hypertext
Markup Language) ze serverů na Webu. Pokud webovému prohlížeči zadáme adresu, která začíná
textem „http://", říkáme tím serveru, že budeme otevírat dokument s formátovacími kódy jazyka
HTML a že náš prohlížeč dokáže těmto kódům správně porozumět a zobrazit je. Ovládací prvek
Microsoft Internet Controls dokáže také pomocí tohoto protokolu načítat webové stránky ze serverů na
Internetu.
Protokol FTP se používá především pro přenos binárních souborů nebo textových souborů z různých
speciálních serverů, kterým se říká servery FTP nebo lokality FT'P. Servery FTP se označují prefixem
„ftp:/" před vlastní adresou počítače.
V ovládacím prvku Microsoft Internet Controls můžeme buďto metodou OpenURL načíst celý soubor
v jediné operaci, nebo pomocí něj můžeme přenos souboru zpracovat speciálním způsobem, bajt po
bajtu pomocí příkazu Navigate. Příklad v této lekci demonstrují jednodušší z obou postupů, tedy
volání metody Navigate, která načte celý soubor v jednom synchronním datovém proudu.
Vytvoření spouštění Internet Exploreru s vlastním nastavením
V následujícím cvičení vytvoříme aplikaci, která pomocí mechanismu Microsoft Internet Controls
spouští prohlížeč Internet Explorer s přednastavenými možnostmi zobrazení.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 17 Aplikace Spouštění Internet Exploreru s vlastním nastavením
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
26
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
1) Propojení projektu s programem Internet Explorer
V nabídce Project klepněte na příkaz References. Zkontrolujte, jestli je vedle odkazu na objektovou
knihovnu Microsoft Internet Controls uvedena značka zatržení, a poté klepněte na tlačítko OK.
Objektová knihovna Microsoft Internet Controls nabízí přístup k objektům, metodám a vlastnostem,
které dává k dispozici objektová aplikace Microsoft Internet Explorer.
Odkazy na objektové knihovny musíme příkazem References přidávat do každého nového projektu
explicitně.
2) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 18 Uživatelské rozhraní aplikace Spouštění Internet Exploreru s vlastním nastavením
Ovládací prvek
Nastavení vlastností
Form 1
Caption:
Spouštění
internet
Exploreru s nastavením
Caption: URL:
Text: http//www.seznam.cz
Caption: &Pravopis (znak & slouží
k potržení prvního písmene)
Caption: Status Bar
Value: 1 - Checked
Caption: ToolBar
Value: 1 - Checked
Caption: Povolit změny velikosti
Value: 1 - Checked
Caption: Viditelnost
Value: 1 - Checked
Caption: Celá obrazovka
Value: 1 - Unchecked
Viz. Obr 18
Text: (prázdné)
Label 1
Text 1
Command 1
Check 1
Check 2
Check 3
Check 4
Check 5
Label 1 - 4
Text 2 - 5
Command 1
Funkce
Formulář aplikace.
Slouží pro popis ovládacího prvku Text 1.
Slouží pro zadávání http adres WWW stránek.
Slouží pro kontrolu pravopisu slova zapsaného
v ovládacím prvku Text 1.
Slouží pro přepínání zobrazení Stavového
řádku okna Internet Exploreru.
Slouží pro přepínání zobrazení nástrojové lišty
okna Internet Exploreru.
Slouží pro přepínání povolení manipulace
s oknem aplikace Internet Explorer.
Slouží pro přepínání viditelnosti okna Internet
Exploreru.
Slouží
pro
přepínání
v celoobrazovkovém režimu
zobrazení
Slouží k popisu ovládacích prvků Text 2 - 5
TexBoxy jsou uspořádány takto: Text2 Text4
Text3 Text5
Caption: &Zobrazit (znak & slouží Slouží pro zobrazení editovaného okna Internet
k potržení prvního písmene)
Exploreru..
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
27
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
3) Vytvoření programového kódu tlačítka Command 1
První příkazové tlačítko bude spouštět Internet Exporer a pomocí metody Navigate .
Poklepáním na tlačítko Zobraz otevřete v okně kódu proceduru události Command1_Click. Do
procedury události zapište následující programový kód:
Private Sub Command1_Click()
Dim ie As New InternetExplorer
ie.ToolBar = Check2.Value
ie.StatusBar = Check1.Value
ie.Resizable = Check3.Value
ie.Visible = Check4.Value
ie.FullScreen = Check5.Value
ie.Navigate Text1
ie.Top = Text2
ie.Left = Text3
ie.Height = Text4
ie.Width = Text5
ie.StatusText = "Uživatelský start"
End Sub
Jednotlivé funkce mají následující významy:
shdocvw.dll – standardně se nachází ve Windows\System.
FullScreen - True jestliže chceme okno Internet Exploreru otevřít přes celou obrazovku,
pokud ne, tak zadáme hodnotu False.
MenuBar - True jestliže chceme zobrazit v okně Internet Exploreru hlavní nabídku, pokud
ne, tak zadáme hodnotu False.
Resizable - True jestliže chceme aby uživatel mohl měnit velikost okna, jinak False
StatusBar - True jestliže chceme zobrazit v okně Internet Exploreru stavový řádek, pokud ne,
tak zadáme hodnotu False.
Toolbar - True jestliže chceme zobrazit v okně Internet Exploreru hlavní nabídku s ikonkami
a řádek - adresa, pokud ne, tak zadáme hodnotu False.
Visible - True jestliže chceme okno Internet Exploreru vidět, pokud ne, tak zadáme hodnotu
False.
Height - výška okna (v bodech)
Left - vzdálenost levého okraje obrazovky od levého okraje okna (v bodech)
Top - vzdálenost horného okraje obrazovky od horného okraje okna (v bodech)
Width - šířka okna (v bodech)
Další funkce, které je možné použít:
GoBack - návrat o jednu stránku dozadu
GoForward - návrat o jednu stránku dopředu
GoHome - návrat na domovskou stránku
Stop - zastavit aktuální proces
Quit – zavřít okno
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
28
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
4) Vytvoření procedury přepínače Check 5
Uzavřete proceduru události Command1_ Click a poklepejte na příkazové přepínač Celá obrazovka,
tak aby se inicializovala procedura Check5_Click. Do procedury události napište příkazy:
Private Sub Check5_Click()
Dim ok As Boolean
ok = Check5.Value
Text2.Enabled
Text3.Enabled
Text4.Enabled
Text5.Enabled
=
=
=
=
Not
Not
Not
Not
ok
ok
ok
ok
End Sub
5) Vytvoření procedury formuláře
Uzavřete proceduru události Check5_ Click a poklepejte na formulář, aby se inicializovala procedura
Form_Unload. Do procedury události napište příkazy:
Private Sub Form_Unload(Cancel As Integer)
Set ie = Nothing
End Sub
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
29
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
18 SHRNUTÍ - VÝUKOVÝ PROGRAM ČEŠTINA
Vytvoření aplikace Čeština
V následujícím cvičení vytvoříme aplikaci, která pomocí mechanismu Clipboard (schránka) umožňuje
uživateli používat myši pro práci s textovými poli. Dále budeme pracovat s proměnnými, které dokáží
předávat hodnoty z jednoho formuláře na druhý.
Až budete hotovi, budete mít k dispozici tento formulář:
Obr. 19 Aplikace Čeština
1) Vytvoření uživatelského rozhraní
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 20 Uživatelské rozhraní aplikace Čeština
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
30
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Ovládací prvek
Nastavení vlastností
Form 1
Command 1
Caption:
Výukový
program
ČEŠTINA
Caption: Vyber si text, na kterém si
chceš ověřit své znalosti
Font: 10 tučné
ForeColor: červená
Caption: Tvé odpovědi
Font: 10 tučné
ForeColor: červená
Text: Věty z knížky HONZÍKOVA
CESTA
Caption: Pomocí myši označ slovo,
o kterém si myslíš, že je podmětem
ForeColor: modrá
Caption: Výsledek tvé odpovědi je:
Font: 8 tučné
Font: 8 tučné
ForeColor: modrá
Font: 14 tučné
ForeColor: červená
Caption: Ověř odpověď
Command 2
Caption: Statistika
Frame 1
Frame 2
Combo 1
Label 1
Label 2
Label 3
Label 4
Funkce
Formulář aplikace.
Slouží jako kontejner pro ovládací prvky
Combo1, Text1 a Label1.
Slouží jako kontejner pro ovládací prvky
Label1 až Label4.
Slouží pro zobrazení seznamu vět, ze kterých si
uživatel vybírá.
Slouží pro popis ovládacího prvku Text 1.
Slouží k popisu ovládacího prvku Label 3.
Slouží k zobrazení uživatelem označeného
slova.
Slouží pro zobrazení slovního hodnocení
odpovědi.
Slouží pro ověření vybraného slova a zobrazení
slovního hodnocení odpovědi.
Slouží pro zobrazení dalšího formuláře ze
statistickými hodnotami.
2) Naplnění ovládacího prvku Combo 1 příslušnými větami
Poklepáním na formulář Form1 otevřete v okně kódu proceduru události Form_Load. Do procedury
události zapište následující programový kód:
Private Sub Form_Load()
Combo1.AddItem "Punťa tě hledá po návsi."
Combo1.AddItem "Kufřík přece jen s vlakem neujel."
Combo1.AddItem "Pod bílými vousy se dědeček usmívá."
End Sub
Tento kód zajistí, že při každém načtení formuláře do paměti dojde k naplnění ovládacího
prvku Combo 1 příslušnými textovými řetězci.
3) Vytvoření procedury ovládacího prvku Combo1
Uzavřete proceduru události Form_Load a poklepejte na ovládací prvek Combo1, tak aby se
inicializovala procedura Combo1_Click. Do procedury události napište příkazy:
Private Sub Combo1_Click()
Text1 = Combo1
Combo1.Visible = False
End Sub
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
31
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
Tento kód (Text1 = Combo1) slouží k předání obsahu aktuálního řádku ComboBoxu do textové
boxu Text1. To znamená, že pokud uživatel pomocí vybere ze seznamu jakoukoliv větu, tak se
inicializuje tato procedura, která vybranou větu předá do ovládacího prvku Text1, kde se zobrazí.
Další kód (Combo1.Visible = False) slouží ke skrytí ovládacího prvku Combo1, aby
uživatele nemátlo, které slovo a ve kterém ovládacím prvku má vybrat.
4) Vytvoření procedury tlačítka Command 1
Uzavřete proceduru události Combo1_ Click a poklepejte na ovládací prvek Command1, aby se
inicializovala procedura Command1_Click. Do procedury události napište příkazy:
Private Sub Command1_Click()
Dim pro As String
Clipboard.SetText Text1.SelText
pro = Text1.SelText
Label4 = "Špatně"
If Text1 = "Punťa tě hledá po návsi." And pro = "Punťa" Then _
Label4 = "Správně"
If Text1 = "Kufřík přece jen s vlakem neujel." And pro = "Kufřík" Then _
Label4 = "Správně"
If Text1 = "Pod bílými vousy se dědeček usmívá." And pro = "dědeček" Then _
Label4 = "Správně"
If pro = "" Then Label4 = "Označ nějaké slovo"
If Label4 = "Správně" Then a = a + 1
If Label4 = "Špatně" Then b = b + 1
Label3 = pro
Combo1.Visible = True
End Sub
Jedinou novou věcí je kód pro zachycení obsahu schránky. Proto využíváme příkazu Clipboard
(schránka) s atributem SelText (označený text) který umístí označený text v ovládacím prvku Text1
do deklarované proměnné pro, která je typu řetězec. Takže označení slovo potom můžeme zachytit do
této proměnné a dále s ním pracovat v příslušných podmínkách typu If…Then.
5) Vytvoření statistického modulu
Zvolte Project, Add modul a napište do modulu deklaraci dvou veřejných proměnných zhruba
v těchto intencích:
Public a As Integer
Public b As Integer
Klíčové slovo Public znamená, že obě deklarované proměnné jsou dostupné pro všechny formuláře
v daném projektu.
6) Vytvoření procedury tlačítka Command 2
Přepněte se do objektového zobrazení formuláře Form1 a poklepejte na ovládací prvek Command2,
aby se inicializovala procedura Command2_Click. Do procedury události napište příkaz:
Form2.Show
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
32
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
7) Vytvoření uživatelského rozhraní formuláře Form 2
Zvolte Project, Add Form, vyberte Form a stiskněte Otevřít. Do projektu se přidá další
formulář, který se jmenuje Form2. Na obrázku jej vidíte:
Na formulář umístěte následující ovládací prvky a nastavte jim v panelu Properties následující
vlastnosti:
Obr. 21 Uživatelské rozhraní formuláře Form 2
Ovládací prvek
Nastavení vlastností
Form 2
Caption:
Výukový
program
ČEŠTINA - Statistika
Caption: Hodnocení tvých odpovědí
Font: 10 tučné
ForeColor: červená
Caption: Celkově si odpověděl
otázek:
Caption: Z toho správných bylo:
Caption: Z toho špatných bylo:
Caption: Proto je tvá celková
úspěšnost:
Font: 12 tučné
Frame 1
Label 1
Label 2
Label 3
Label 4
Label 5
Label 6
Label 7
Label 8
Label 9
Label 10
Command 1
Font: 14 tučné
ForeColor: červená
Caption: %
Font: 14 tučné
Font: 14 tučné
ForeColor: modrá
Caption: OK
Funkce
Druhý formulář aplikace.
Slouží jako kontejner pro ovládací prvky
Label1 až Label0.
Slouží pro popis ovládacího prvku Label5.
Slouží pro popis ovládacího prvku Label6.
Slouží pro popis ovládacího prvku Label7.
Slouží pro popis ovládacího prvku Label8.
Slouží k zobrazení součtu čísel v proměnných
a a b.
Slouží k zobrazení čísla v proměnné a.
Slouží k zobrazení čísla v proměnné b.
Slouží pro zobrazení procentuálního hodnocení
odpovědí.
Slouží pro zobrazení znaku % u Lebelu8.
Slouží k zobrazení
úspěšnosti žáka.
slovního
hodnocení
Slouží k opuštění Form2 a návratu do Form1.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
33
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
8) Procedura formuláře Form2
Poklepáním na formulář Form 2 otevřete v okně kódu proceduru události Form_Load. Do procedury
události zapište následující programový kód:
Private Sub Form_Load()
If a + b = Empty Then MsgBox ("zatím jsi neodpověděl ani na jednu otázku")
Label5
Label6
Label7
c = (a
=
=
=
/
a + b
a
b
(a + b + 0.000000001)) * 100
Label8 = c
If c >= 75 Then Label10 = "Získal jsi titul VŠEZNÁLEK!!!"
If c < 75 And c >= 50 Then Label10 = "Seber se a vypluj z šedi průměru!!!"
If c < 50 Then Label10 = "Opakování matka moudrosti - začni znova"
End Sub
4) Vytvoření procedury tlačítka Command1
Uzavřete proceduru události Form_Load a poklepejte na ovládací prvek Command1, aby se
inicializovala procedura Command1_Click. Do procedury události napište příkazy:
Private Sub Command1_Click()
Unload Form2
End Sub
Tipy pro zdokonalení aplikace
•
Pokuste se o vytvoření takových podmínek, aby nebylo nutné naprosto přesně myší označit
vybrané slovo. Tedy aby uživatel měl možnost označit i jiné znaky (např. mezera atd.)
•
Pokus se upravit aplikaci tak, aby dopočítávala čas potřebný k zadání odpovědi.
PhDr. Milan Klement© – Tvorba výukového software – Pracovní listy
34

Podobné dokumenty

Vlková Dana - SOŠ ekologická a potravinářská, Veselí nad Lužnicí

Vlková Dana - SOŠ ekologická a potravinářská, Veselí nad Lužnicí 1. ÚVOD .................................................................................................................................. - 7 2. TEORETICKÁ ČÁST ......................................

Více

Ovládání laboratorního modelu robota Mindstorms

Ovládání laboratorního modelu robota Mindstorms společníkem téměř kaţdého člověka. Dalo by se říct, ţe uţ máme všechno, jen nemáme a asi ani nikdy nebudeme mít dost. Vývoj neustále pokračuje. Rodí se děti, které uţ mají dnešní pokrok v krvi. Mal...

Více

Školení pro pokročilé uživatele – Excel

Školení pro pokročilé uživatele – Excel  odkazování na list (index, 2 typy názvu listu)  odkazování na sešit – rozdíl mezi ActiveWorkbook, ThisWorkbook, Workbooks(Name)

Více

7. Moduly

7. Moduly Chceme, aby se při klepnutí na tlačítko provedl programový kód sestavující z polí Příjmení a Jméno pole E_mail. V řádku vlastnosti Při klepnutí tlačítka Tvorba klepneme do tlačítka se třemi tečkami...

Více

Metodika výuky programování - PROŠ

Metodika výuky programování - PROŠ 4) Jsou snáze zapamatovatelné 5) Jsou projevem vašeho zájmu Pokud učitel stráví mnoho času přípravou vizuálních a audiovizuálních podkladů pro výuku je jasné, že mu tato výuka není lhostejná. Můžem...

Více

ASP.NET pre začiatočníkov

ASP.NET pre začiatočníkov skontrolujú celý súbor a ak tento neobsahuje žiadny skriptový kód, priamo ho vložia do HTML stránky. Preto môžeme používať príponu ASP pre všetky stránky bez ohľadu na to, či obsahujú, alebo neobsa...

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Diplomová práce

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Diplomová práce během cesty bludištěm nic odhodit ani ztratit. Myš nesmí skákat, překračovat nebo lozit po stěnách. Také nesmí žádnou svou činností poškodit bludiště.

Více

Objekt Timer a ProgressBarr – Videostop

Objekt Timer a ProgressBarr – Videostop Ve hře Videostop jde o to, zastavit měnící se čísla ve chvíli, kdy jsou zobrazena alespoň dvě stejná čísla (5 bodů). Za tři stejná čísla obdrží hráč 10 bodů. Založte si nový projekt a připravte si ...

Více

Základy MS Excelu 2007 jednoduše

Základy MS Excelu 2007 jednoduše Pokud potřebujete ještě další výpočty, klepněte na stavový řádek pravým tlačítkem myši a ze zobrazené nabídky Vlastní nastavení stavového řádku vyberte ty funkce, které potřebujete. 34. Automatická...

Více