Pedagogická Fakult Masarykovy
univerzity
Visual Basic 6.0
Jiří Strach
2. Objektově orientované programování
3.1. Charakteristiky dodávaných
edicí Visual Basicu.
3.2. Nároky na instalovaný hardware a software.
3.3. Pomocné vývojové prostředky
3.4. Spuštění Visual Basicu z Windows.
3.5. Integrované vývojové prostředí Visual Basicu (IDE -
Integrated Development Environment )
Návrh uživatelského rozhraní (User Interface)
Základy programování ve Visual Basicu
Jak pracuje událostí řízená aplikace
Podprogramy (procedury) událostí (Event procedues)
Podprogramy (General procedures)
Zdrojové texty procedur (Code in Procedures)
Instrukce podprogramu (Steatements) .
Nastavení a změna vlastností objektů
1.6.4. Příkazy pro řízení běhu
aplikace
1.6.5. Příkazy pro ošetření chyb.
1.7. Použití objektů v aplikací
Programovací jazyk Visual Basic 6.0 se nazývá Visual protože je v něm použita metoda vizuální tvorby grafického uživatelského prostředí (GUI - Graphical User Interface). Místo toho, aby bylo třeba psát desítky a stovky řádků programu popisující uživatelské prostředí tvořeného programu , programátor jednoduše uchopí a vtáhne potřebný objekt do patřičného místa na obrazovce, kde se bude při běhu programu vyskytovat (Drag and drop technologie). Slovo Basic znamená , že tento objektově orientovaný jazyk zahrnuje jako podmnožinu svých příkazů originální jazyk BASIC který byl obohacen o stovky příkazů a klíčových slov z nichž mnohé přímo ovládají grafické rozhraní Windows. Začátečník může pomocí tohoto jazyka vytvářet použitelné aplikace pro Windows , získáním znalosti nemnoha klíčových slov, ale současně tento jazyk dovoluje profesionálům vytvářet velmi náročné aplikace na příklad třívrstvé architektury client server. Tento programovací jazyk neslouží pouze pro vytváření aplikací v tomto jazyce, ale tak zvaná Applications Edition umožňuje programovat makra v systémech jako je EXEL a ACCESS a v dalších programech obsažených v Microsoft Office. Část Visual Basicu nazvaná Scripting Edition (VBScript) je určena pro programování Internetových stránek a použitá syntaxe i klíčová slova svým významem odpovídají použití v ostatních aplikacích.
Z výše uvedeného plyne, že programovací jazyk Visual Basic uspokojí celou širokou škálu tvůrců programového vybavení od těch, kteří si přejí vytvořit malou utilitu pro zlepšení užitné hodnoty některého s programů balíku Microsoft Office až po pracovní skupiny vytvářející náročné síťové aplikace. Vedle výše popsaných vlastností umožňuje Visual Basic :
· Připojení databází umožňuje vytvářet front - end aplikace prakticky pro všechny populární databázové formáty, včetně Microsoft SQL Serveru a dalších enterprise-level databází.
· Technologie ActiveX umožňuje vkládat do vytvářených programů vlastnosti jiných aplikací jako jsou na příklad MSWord nebo Excel.
· Využitím vlastností Internetu můžete jednoduše propojovat dokumenty a aplikace obsažené na vašem počítači i v Intranetu a Internetu.
· Výsledkem
vaší tvorby jsou .EXE soubory které můžete pomocí Applications Setup Wizardu volně
distribuovat včetné run -time dynamic-link librery (DLL)
|
|
Obr.1 |
Současné metody programování lze rozdělit na procedurální a objektově orientované. K procedurálnímu programování se využívali programovací jazyky Cobol, Fortran, C, Basic, Pascal. V posledních letech většina jazyků byla doplněna moduly pro objektově orientované programování Objekt CC+, TurboVision. Vznikla však také zcela nová generace objektově orientovaných jazyků, která sice čístečně používá některé části starších jazyků ale představuje zcela nvý nástroj. Jsou to na příklad Delphi - Turbopascal a také Visiual Basic - Basic.
Každý program je v nejobecnějším případě možno považovat za funkci, která prostřednictvím hardwaru počítače transformuje vstupní data na výstupní. V důsledku vývoje tvorby programů a růstu jejich složitosti byl nejprve jednolitý program rozdělen na části, které se nazývají podprogramy nebo také procedury. Jak je patrno z obr.1 je při procedurálním programování interakce mezi daty a procedurami tím složitější čím je projekt programu komplexnější.
obr.2 |
Přístup různých procedur k stejným datům může způsobit chyby, které se ve složitých programech těžko vyhledávají a odstraňují. Na rozdíl od procedurálního programování, objektivně orientovaná metoda programování vytváří speciální celek - objekt , který obsahuje data zapouzdřená do objektu procedurami které s daty pracují. (obr.2)
Stejně jako objekt v reálném světě tak objekt v programu má znaky, které ho charakterizují a má vlastnosti, kterými disponuje. Na příklad objekt TLAČÍTK obsahuje data a kód , který generuje jeho zobrazení na obrazovce a kód , který provede akci s daty. Stejně tak objekt reprezentující tabulku databáze obsahuje data a
všechny kódy procedur pro práci s tabulkou a s jednotlivými záznamy, metody jak s daty pracovat a cestu pro přístup k datům.
Při využití těchto vlastností objektů může být objektově orientovaný program rozdělen na programové celky, které reprezentují jednotlivé objekty pro specifická data a činnosti. Jednotlivé objekty pak na sebe vzájemně působí vyvoláním určité události na kterou ostatní objekty reagují. ( Událostí je na př. STISKNUTÍ TLAČÍTKA).
Pokud hovoříme o objektově orientovaném programování (OOP), je nutné si pod tímto pojmem představit nový způsob vytváření programu. Nejedná se o zcela nový způsob na úrovni jazyka , jedná se zejména o nový způsob logického přístupu ke stavbě programu. Programováním technologií OOP se snažíme o abstrakci daného problému a jeho logické rozčlenění. Přínos OOP je také ve větší strukturovanosti a modularitě vytvářeného programu. Program se stává přehlednější, což je přínosem zejména při vytváření velkých programových celků a týmové práci. Tím , že program sestavujeme z objektů, dáváme ostatním možnost tyto objekty sdílet a nenutíme je zacházet při programování do zbytečných detailů.
obr.3 |
|
Uložení dat do celků
s procedurami obalení -
encapsulation a modularita
přináší relativně jednoduché programové struktury Uložení
dat do celků s procedurami obalení
- encapsulation a modularita
přináší relativně jednoduché programové struktury
Poznámka:
obalení - encapsulation ... Datový objekt obsahuje
množinu datových prvků a metod, které pracují s datovými prvky.Objekt
obsahuje datoví struktury a jim příslušející řídící struktury, navenek však
vystupuje jako jeden samostatný typ
OOP může být vytvořen jako síť objektů, které spolu navzájem spolupracují vysáláním zpráv o událostech
Dalším důležitým přínosem OOP je inheritance - dědičnost
Poznámka:
inheritance - dědičnost ...
Pojem dědičnosti si můžeme vysvětlit stejným způsobem jako v živé přírodě.
Vlastnosti typu objekt se přenášejí ”dědí” z typu ”předka” na nově vytvořený typ objektu ”potomka” . Přenášejí se jak datové složky,
tak jejich metody. Nově vytvořený objekt může získané vlastnosti rozšiřovat
nebo modifikovat.
|
Polymorphism - polymorfie je další charakteristicko vlastností OOP.
Poznámka:
Polymorfismus znamená, že objekty které obdrží zprávu na ni odpovídají různým způsobem daným jejich vlastnosmi.
Operační systém Windows i všechny aplikace
pod ním pracující jsou řízeny pomocí událostí.Každý
objekt ve Windows (okno, tlačítko, ikona, obrazovka, počírač) může generovat
zprávy (messages), které způsobí vznik události. A naopak každý objekt se
za přesně řízených okolností zúčastňuje přijímání zpráv a reaguje na vzniklé
události.Jeden z objektů Windows má v daném okamžiku v systému
specifické postavení: je zaměřený (focused) , to je , že právě jemu
budou směrovány všechny zaměřené události. To jsou události vzniklé většinou
”nečekaně” bez přičinění systému (např. stisk klávesy, pohyb myši,
atd.). Tyto pak bývají prvotním impulsem
pro vznik celého řetězce událostí. Analogicky existují ještě události ”očekávané”
na příklad události následující po spuštění
operačního systému (připojení se do počítačové sítě atd.). Pokud zaměřený
objekt není schopen událost zpracovat může postoupit událost ke zpracování
jiným objektům podle daného pořadí. Toto pořadí může stanovit tvůrce aplikace.
Üdálostně řízený systém je velmi pružný a efektivní
Visual Basic je možno získat ve třech verzích, z nichž každá obsahuje specifický soubor vývojových nástrojů:
·
Visula Basic Learning edition umožňuje programátorům snadno
vytvářet výkonné aplikace pro MS Windows
·
Visula Basic Professional edition
vybavuje profesionální programátory úplným souborem nástrojů pro
vývoj profesionálních aplikací pro jiné uživatele. Tato edice obsahuje všechno
co je obsaženo v Learning edition plus, řadu dalších ovládacích prvků ActiveX obsahujících
ovládací prvky pro Interet a program pro tvorbu výstupních sestav Crystal
Report Writer.
·
Visula BasicEnterprise edition umožňuje
týmům profesionálů vytvářet robustní distribuované aplikace. Obsahuje plně Professional
edition, plus Automation Manager,
Component Manager, Database managment tools , Visual Source Safe -
projektově orientovanou verzi kontrolního systému tvorby projektu, a mnoho
dalšího.
Visual Basic 5.0 vyžaduje PC vybavené
procesorem
Operační systém MS Windows 95 nebo Windows NT 3.51 nebo pozdější.
Programovací balík Visual Basic obsahuje stovky příkazů, desítky objektů a knihoven. Práci s tímto náročným prostředím usnadňují následující pomocné prostředky:
· Visual
Basic Books Online, je program, který umožňuje získávat a tisknout
podrobné informace z dokumentů uložených v přehledné databázi.
· Online Help obsahuje rozsáhlé
informace o jazyce i prostředí Visual Basicu včetně příkladů.
· Visual Basic Online Links, obsahující adresy připojující zdroje informací o Visual Basicu v WWW.
ad a.)
1. Ťukněte (Click) na tlačítko Start na dolní liště
2. Vyhledejte
skupinu Programy a pak skupinu Visual Basic 6.0
3. Ťukněte dvakrát (DoubleClick) dvakrát na ikonu
Visual Basic 6.0
ad b.)
1. Vyhledejte na příklad pomocí Průzkumníka soubor VB5.exe a ťukněte dvakrát na jeho ikonu.
Obr. 5. |
Jak je patrno z obrázku Obr.5 sestává IDE následujících elementů:
· Hlavního menu které zobrazuje příkazy umožňující práci s Visual Basicem. To obsahuje standardní příkazy jako File (Soubor), Edit (Úpravy), Viev (Zobrzit), Window (Okna), Help (Pomoc), a dále specifické jako Project, Format, Debug a další.
· Kontextová menu zprostředkovávají zkrácenou cestu k často vyžadovaným akcím. Jejich obsah je závislý na kontextu a na častí prostředí na které ukazuje kurzor myši. Otevírají s ťuknutím na pravé tlačítko myši.
· ástrojová lišta (Toolbar) zprostředkovává rychlé provádění příkazů v IDE . Ťuknutím na ikonu v liště se vykoná akce která je tlačítkem reprezentována. Obsah nástrojů v nasrojové liště je možno individuálně upravovat.
Poznámka : Visual
Basic používá pro název objektu, který bude ve vytvořené aplikaci vytvářet
jedno okno ve kterém aplikace poběží pojem Form do češtiny se tnto pojem překládá různě
Formulář nebo Okno. Protože
prostředí Visual Basicu není lokalizováno do češtiny budu v dalším textu
používat anglický pojem Form.
· Okno násrtojů (Toolbox) nabízí soubor nástrojů, které můžete využít v době návrhu pro umístění ovládacích prvků do vytvářené formy . Okno nástrojů je možno pro konkrétní projekt doplňovat o další nástroje.
· Okno projektového průzkumníka (Project Explorer Window) Obsahuje seznam forem a modulů obsažených v právě otevřeném projektu.
·
Okno vlastností (Properties
Window) Obsahuje seznam vlastností nastavených pro vybrané formy a ovládací
prvky. Vlastnosti jsou na příklad velikost objektu, barva, název atd,
·
Prohlížeč objektů (Object
Browser) Obsahuje seznam objektů které jsou v daném okamžiku k dispozici
pro tvorbu projektu. (Obr.6.)
·
Formu pro vývoj Forem (Form Designer
) Poskytuje okno pro vývoj uživatelského prostředí vyvíjené aplikace. Každá
vytvářená forma ve vaší aplikaci má svoji vlastní formu pro vývoj.
Okno pro tvorbu kódu (Code Editor Window) poskytuje textový editor pro psaní kódu aplikací. (Obr. 7 )
Okno pro rozvržení obrazovky(Form Layout Window) zobrazuje pozici navrhované Formy vaší aplikace na obrazovce monitoru. Je reprezentována malou obrazovkou . (Obr. 8.)
Programátor využívá při práci s Visual Basicem více oken. V jeden okamžik je aktivní pouze jedno okno. Aktivní okno na sebe přebírá a zpracovává všechny události jduocí od klávesnice a myši. Výběr aktivního okna lze provést kliknutím na vybrané okno.
obr.7 |
Hlavní panel Visual Basicu (obr.7)je v systému vždy k dispozici, může však být překryt
běžící aplikací. Hlavní panel je z hlediska Windows normální okno, proto také obsahuje ovládací prvky používané v jinách oknech Windows. Jsou to především ikona ukládání okna na ovládací lištu, ikona na přepínání celoobrazovkového režimu a ikona na ukončení aplikace.
Okno formy je vždy přístupné v režimu návrh (design). Po spuštění Visual Basicu se automaticky otevře Project1 a na obrazovce se objeví formulář Form1. Pokud není ve vlastnostech objektu Visual Basicu nastaven jiný pracovní adresář otevře se soubor Project1 umístěný v tomto adresáři. V okně formy je možno umístit různé objekty. Příklady některých objektů jsou na obr.8
obr.8. |
Objekty do formy se vkládají pomocí okna nástrojů Visual
Basicu které se nazývá Toolbox.. Toto okno je zobrazeno na obr .9. Pokud
se po spuštění Visual Basicu toto okno neobjeví na obrazovce je možno přikázat
jeho zobrazení v položce VIew závěsního menu. Každému objektu
Visual Basicu je možno nastavit jeho vlastnosti pomocí okna vlastností Properties
(obr.10.).
|
|
obr.9 obr.10
Vlastnosti je možno nastavovat přímo při tvorbě programu v uvedeném okně vlastností, nebo změnou vlastností v průběhu chodu programu na základě některé z událostí. Odstranění prvků z formy je možné označením prvku kliknutím myši a stisknutím tlačítka Delete na klávesnici.
V režimu design po stisku tlačítka View Code v okně Project (obr.11) se otevře okno zdrojového kódu aktivního objektu (formy, tlačítka, textového okna atd.) . Okno zdrojového textu (obr. 12.) má tři hlavní části:
obr.11
1.
.Combo box se seznamem všech objektů formy.
Při přidání objektu z Toolboxu do formy automaticky přibude položka do
seznamu tohoto boxu. Pokud je Forma prázdná
obsahuje Combo box dvě položky Form a
general . Položka Form zahrnuje obslužné rutiny událostí týkajících
se aktuální formy, položka general zahrnuje texty týkající se všech
udalostí a popisů formy.(Obr.12)
2.
Editační plochu - v této části okna se
zobrazují zdrojové texty podprogramů, rutin událostí a definic. Stejně jako u
textových editorů je možno editační plochu rozdělit na dvě části pomocí
myši.(Rozdělovací tlačítko Obr. 13)
Combo box
se seznamem událostí Rozdělovací tlačítko Combo box se seznamem objektů Editační
plocha
obr.12
3.
Combo box se
seznamem událostí spojených s daným objektem. Pro v combu objektů
vybraný objekt se zde nabízí seznam všech událostí týkajících se vybraného
objektu. Pro položku general se
v seznamu nabízejí názvy obecných podprogramů a deklarace položka declaration.
Umožňuje interaktivní odlaďování programů. Okno představuje obrazovku ve které je možno interaktivně zkoušet jednotlivé příkazy jazyka. Pokud chceme zkusit delší sekvenci je možno jednotlivé příkazy oddělit dvojtečkou jak je patrno na obr.13. Příkazy se vykonají po odeslání řádku klávesou Enter.
obr.13
Okno Debug je k dispozici v režimu break Do režimu break se můžeme dostat při chybě odlaďovaného programu nebo úmyslným přerušením programu z menu nebo pravítka nástrojů.
obr.14 |
Okno projektu (obr.
· ikona prvku - formulář, modul
· název souboru s příponou FRM, BAS, OCX, CLS,VBX, RES
· Jméno formy
Na aktuální vybraný řádek pak lze aplikovat některé z tlačítek umístěných v okně projektu nebo v hlavním menu Visual Basicu obr. 7
Tlačítko View Code otevře okno se zdrojovým textem formy nebo modulu definice třídy nebo basickového modulu. Tlačítko View Form je možno použít pouze pro otevření formy. Sejného účinku je možno dosáhnout pomocí myši dvojím kliknutém na patřično ikonu formy. Při dvojím kliknutí na modul se otevře zdrojový text v příslušném okně.
obr.15 |
Toto okno je možno otevřít v případě, že je otevřena některá forma projektu. Pokud není okno otevřeno jeho možno otevřít z hlavního menu z položky View nebo klávesou F4 nebo ukízáním myši na formu a stisknutím pravého tlačítka a po objevení menu (obr.15) klepnutím na položku Propertis. Poslední uvedený způsob je nejlepší a dá se použit pro nastavování vlastností libovolného objektu ve Windows 95.. Typický tvar okna Propertis je na obrázku 10. Okno má dvě čísti :
1. Seznam všech dostupných vlastností vybraného objektu. Vlastnosti lze vybírat myší, nebo pomocí klávesnice.
Vybraná položka se seznamu vlastností se stává polem ve kterém je možno vlastnosti přepsáním nebo výběrem z nabízených měnit.
2. Combo box se seznamem všech řídících prvků umístěných ve formuláři. Vybrání požadovaného prvku v Combo boxu a kliknutím myši na vybranou položku je možno přepínat okna vlastností jednotlivých řídících prvků aktivního formy.
Okno Toolbox je přístupné pouze v režimu design . Objevi se po spuštění Visual Basicu a jeho
Rám obrázku Vstupní pole Dialogové tlačítko Přepínač -volba Seznam Svislý posuvník Disk Soubor Čára Data - připojení OLE objekt DB seznam Kurzor Pevný text Rám Spínač Combo box Vodorovný posuvník Časovač Adresář Tvar Obraz Objekt OLE DBCombo box Mřížka kurzor obr.16 |
možno ho vyvolat z hlavního menu z položky View , Toolbox jak je patrno z obrázku 16. Okno Toolbox obsahuje ikony všech v otevřeném projektu dosažitelných ovládacích prvků. Na obrázku 16 jsou popsány významy jednotlivých ikon. Použití jednotlivých ovládacích prvků bude popsáno v další časti publikace. Výběr určitého ovládacího prvku se provádí aktivací okna nástrojů a poklepáním na určitou ikonu, nebo postupným stiskem klávesy TAB . Aktivovaná ikona změní barvu, a tím je vše připraveno pro instalaci daného ovládacího prvku do formy. (obr.8.) Instalace ovládacího prvku se provede dvojím stisknutím levého tlačítka myši na vybranou ikonu.
Visual Basic pracuje jak je patrno z obrázků
1.
Režim design
Po spuštění programu se nachází systém v režimu design, ten se využívá pro vytváření a úpravu aplikací. V tomto režimu lze využívat všechny vlastnosti vývojového prostředí jazyka pro torbu projektů, forem a modulů.
obr.17. |
Start |
2.
Režim Run
Po vyvolání příkazu Start z menu Run (také
klávesa F5), nebo klepnutím na ikonu Start pravítka nástrojů je možno spustit zkušební běh aplikace, stejně
jako by se jednalo o běh vytvořené aplikace. Pokud je v aplikaci chyba běh
programu se zastaví. Tomu je možno předejít použitím příkazu Start With Full
Compile z menu nebo stiskem kombinace kláves Ctrl +F5.zkušební
běh aplikace, stejně jako by se jednalo o běh vytvořené aplikace.
End |
obr.18. |
Break
re
3.
Režim break
Tento režim může být aktivován dvěma způsoby:
a) úmyslně
stiskem kláves Ctrl +Break, nebo z menu položkou Break, nebo kliknutím na tlačítko Break z pravítka
nástrojů. Jak je patrno z obrázku 19 v režimu Break se
aktivuje okno Debug , (obr.13) pomocí kterého lze pak sledovat stav
aplikace například vypisovat obsahy proměnných.
b) vlivem
systému např. Po chybě při výpočtu nebo účinkem příkazu Stop , který
může programátor úmyslně zapsat do kódu, aby v určitém místě chod aplikace
přerušil k ladícím účelům. V tom případě lze okno Debug aktivovat
klávesami Ctrl + B nebo výběrem z hlavního menu z položky View
. Z příkazu break se lze vrátit do režimu Run stiskem klávesy F5
nebo z menu příkazem Continue ne stiskem tlačítka Continue z pravítka
nástrojů. Do režimu design se přechází pomocí tlačítka End nebo položky
End z hlavního menu
|
obr. 19 |
Při přípravě nového projektu ve Visual Basicu je si třeba uvědomit, že jde o zcela jiný přístup k přípravě programu než při procedurálním programování. Programátor připravující klasickou procedurální aplikaci se snaží nejprve připravit dokonalý algoritmus problému, který má program řešit. Snaží se postupným dělením problému na podproblémy vytvořit takové nezávislé bloky algoritmů pro které by bylo možno použít procedury z uživatelských knihoven po případě pro ty podproblémy pro, které neexistují hotové programy vytvoří nové algoritmy. Teprve pak píše pro navržené algoritmy zdrojový text procedur.
Visual Basic je vývojový systém pro přípravu objektově orientovaných aplikací řízených událostmi. Většinu událostí, které je nucena aplikace rešit vyvolává uživatel při práci s aplikací. Návrhář proto začíná soupisem událostí které bude aplikace rešit a pak návrhem uživatelského rozhraní (interface ) aplikace, které uživateli umožní události vyvolávat. Teprve po ukončení této části práce píše podprogramy pro navržené události a objekty, přitom maximálně využívá knihoven DLL a objektů OLE.
Ještě dnes mnoho programátorů považuje návrh uživatelského rozhraní za pouze kosmetickou záležitost. To plyne s výše popsaného procedurálního způsobu programování. Pro návrhaře pracujícího s Visual Basicem a vůbec při tvorbě programů pro moderní operační systémy jako je Windows 95 nebo Windows NT je naopak návrh uživatelského rozhraní velmi důležitá část práce na projektu. S dobrým uživatelským rozhraním bude váš program uživatelsky přívětivý a bude práce s ním bude efektivní. Proto je nutno po celou dobu návrhu postupovat tak aby:
jste stále mysleli na uživatele;
jste si uvědomili, kdy máte postupovat podle tradice a kdy inovovat;
jste pro aplikaci využívali standardní formy menu a dialogových boxů;
jste vybírali správné kontroly pro řízení správných událostí.
Úspěšný návrhář rozhraní se musí naučit vidět program z pozice uživatele, což představuje poměrně velmi rozdílný pohled od toho, na který je na základě svých vědomostí zvyklý. Může být obtížné vžít se do postavení naivního uživatele anticipovat jeho požadavky a potenciální chybné postupy, kterých se může dopustit. Tento pohled je zvláště důležitý při vytváření výukových programů pro děti a studenty. Na rozdíl od dřívějších způsobů programování, kdy se snažil programátor přinutit uživatele aby přijal logiku počítače se musí dnešní programátor snažit aby počítač přijal logiku práce uživatele. Příkladem může být uživatelské rozhraní Windows 95, které se snaží navodit v uživateli dojem , že obrazovka je vlastně pracovní plocha stolu. Objekty na této pracovní ploše jsou representovány obrázky (ikonami) připomínajícími reálné předměty (na př. koš na odpadky, telefon atd.) Objekty je možno na ploše přesouvat uspořádávat.
Tuto filosofii je možno přenést do nového projektu, ve kterém je dokonce možno řadů existujících ikon, a principů přímo použít.Při návrhu projektu je třeba mít neustále na mysli, že čím více obvyklých objektů a kontrol uživatel najde v nové aplikacím snadněji práci s ním zvládne. Tato konzervativnost nesmí ale bránit projektantovi v návrhu smysluplných inovací.
Jak již bylo řečeno aplikace může obsahovat moduly forem jsou to soubory s příponou .FRM, moduly kódů (.BAS ) a moduly kontrol (.OCX). Modul forma obsahuje vizuální elementy formy včetně kontol a kódů ve Visual Basicu, které jsou s formou sdruženy. Aplikace musí obsahovat nejméně jeden kódový modul nebo formu. Bez nastavování (default) nový projekt obsahu jeden formu, ale je možno postupně při vytváření projektu další formy i moduly přidávat.
Událost je akce, kterou rozezná forma nebo kontrola. Událostí řízená aplikace rozpozná událost a na základě ní spustí program napsaný v jazyce Visual Basic (VB). Každá forma a kontrola ve VB má předefinovánu množinu událostí. Když se některá z těchto událostí vyskytne , VB vyvolá kód který je k události přiřazen.
Tedy objekty ve VB automaticky rozeznávají předdefinované události z uvedené množiny, vy pak musíte při projektování určit kdy a jak mají vámi použité objekty na událost reagovat. Když si tedy přejete, aby určitý objekt reagoval na určitou událost (na příklad na stisknutí klávesy na klávesnici) musíte pro tuto událost napsat kód ve VB který se nazývá event procedure - procedura události.
Mnoho objektů rozeznává stejnou událost , tedy řada objektů může vykonávat různé procedury událostí pro stejnou událost. Na příklad Click Event -(klepnutí) nastane když uživatel krátce stiskne tlačítko myši Pokud kurzor myši ukazuje na formu pak se provede událost Form_Clic pokud ukazuje kurzor na př. na objekt Tlačítko (obr.8.) provede se událost přiřazená k tomuto tlačítku.
Při spuštění typické událostmi řízené aplikace proběhnou následující události:
1.
Po startu aplikace automaticky načte a zobrazí Satrovací
formu (Startup Form)
2.
Forma a kontroly očekávají událost. Událost může být
vyvolána uživatlem aplikace (na příklad pohyb myši), operačním systémem (na
příklad časovačem Timer), nebo nepřímo kódem aplikace (např. událostí
Form_Load() )
3.
Událost se vykoná
4.
Aplikace čeká na další událost.
Výchozí (default) nastavení stanoví jako Sartup Form první v aplikaci vytvářenou formu. Když se aplikace spustí tato forma se zobrazí na monitoru a vykoná se událost , která je v proceduře Form_Load(). Pokud má být spuštěna jiná forma je nutno provést její nastavení menu Option obr.20 , které se volá z položky Tools hlavního menu obr. 7
Událostmi řízená aplikace je ukončena, když její formy jsou zavřeny a nevykonává se žádný kód. Je nutno si uvědomit , že je rozdíl mezi zavřenou formu nebo ukrytou (neviditelnou). Jestli je tato skrytá forma poslední pak aplikace je zdánlivě ukončena, ale ve skutečnosti pokračuje ve své činnosti, až do té doby až je i poslední forma uzavřena. Uzavřít takovou formu může být obtížné, protože neexistuje žádný přístup k jejímu ovládání.
Existuje cesta jak řešit tento problém a jak ukončit program je jí příkaz End . Tento příkaz zastaví všechny procesy spojené s během aplikace, zavře všechny otevřené soubory, a zavře všechny otevřené formy.
obr.20 |
Prvky jazyka Visual Basic jsou :
1. Symboly
Visual Basic používá písmena,
číslice a některé speciální symboly např. pro
označení operátorů, typových přípon apod.
2. Literály
Jsou to skupiny symbolů. Mohou být číselné nebo řetězcové a reprezentují
konkrétní číselnou hodnotu nebo identifikátor.
3. ¨Rezervovaná
slova, též klíčová slova. Určité symboly nebo skupiny symbolů mají
ve VB jednoznačný význam a nelze je užít k jinému účelu, než ke kterému
byly definovány. Jedná se obecně o názvy operátorů, příkazů, funkcí,
standardních metod atd.
4. Datové typy resp. jejich identifikátory. VB rozeznává devět základních datových typů a typ Variant. Kromě nich může programátor definovat vlastní datové typy.
5. Objektové typy, respektive jejich identifikátory. VB pracuje s objekty, pro které zavádí objektové typy, pomocí nichž pak může programátor deklarovat konkrétní instance případně pole instancí. Ve VB lze používat
· obecné
objektové typy Object, MDIForm, Form, Control;
· objektové
typy odvozené od těchto obecných typů dělěním;
· objektové
typy definované pomocí objeku Class Module v modulech definice třídy (moduly CLS)
· objektové
typy definované v OCX resp. VBX modulech.
I když pro deklaraci instancí objektových typů se používá stejných mechanizmů jako pro deklarace datových proměnných (příkazy Dim, Global, Static), manipulace s instancemi se liší od manipulace s proměnnými.
6. Konstanty
a proměnné, případně jejich identifikátory. Jsou to nejednodušší instance
daného datového nebo objektového typu. U každé konstanty i proměnné musí být
v každém okamžiku jasné jakého je datového nebo objektového typu, a to buď
explicitně (deklarací nebo uvedením typové přípony), nebo implicitně pomocí
některého z příkazů Def Type.
7. Procedury
a funkce, nebo jejich identifikátory. Jsou to logicky sdružené sekvence
příkazů jazyka VB, nebo volání metod objektů , případně procedur. Celá aplikace
je rozčleněna do procedur a funkcí (souhrnně podprogramů). Kromě nich se mohou
v aplikaci vyskytovat pouze deklarační moduly.
8. Výrazy,
jsou to kombinace funkcí, operátorů proměnných a konstant dávající (po
vyhodnocení výrazu ) hodnotu numerického
nebo řetězcového typu. Výrazy jsou používány většinou jako skutečné parametry
příkazů , funkcé nebo metod.
Jednoduché aplikace mohou obsahovat pouze jeden formulář (Form) všechny kódy aplikace jsou pak obsaženy v jeho modulu. Je-li vytvářená aplikace velká a více složitá, pak se připojí další formy. Pokud je nutno některé kódy používat ve více formulářích, vytváří se speciální modul procedur, který obsahuje společné kódy a zabrání tomu aby stejné procedury musely být vytvořeny v každém modulu. Postupem času je tak možno si vytvořit vlastní knihovny procedur.
Každý modul kódů nebo Forem (formulářů) musí obsahovat:
·
Deklarace (Declaration) do této
části modulu se ukládají konstanty, deklarace typů, deklarace proměnných a DLL
procedur, které jsou platné na úrovni
modulu. Do této části modulu nelze vložit spustitelné kódy.
·
Podprogramy událostí (Event procedues) to jsou podprogramy Sub které jsou spouštěny, v závislosti na
událostech vyvolaných uživatelem nebo systémem. Procedury událostí jsou platné pouze na úrovni modulu.
·
Podprogramy (General procedures) to jsou podprogramy, které nejsou přímo
spojeny s událostmi. General procedures v modulu forem mají
lokalní platnost pouze v daném modulu; nemohou být volány v ostatních
modulech aplikace. Všechny podprogramy (procedury) v kódovém modulu (code mdule) jsou podprogramy (General
procedures) které mohou být volány z libovolného kódového nebo
modulu nebo formy v aplikaci. Tyto podprogramy mohou být označeny jako Sub
procedury (procedury nevrací hodnotu) nebo Function procedury
(funkce, které vracejí hodnotu).
Jestliže nějaký objekt aplikace rozpozná že se stala nějaká událost, automaticky vyvolá podprogram (proceduru) události se jménem, které koresponduje s událostí. Protože jméno procedury navozuje asociaci mezi objektem a kódem, procedury událostí jsou jména volena tak aby bylo zřejmé o jakou událost se jedná v závislosti na tom ke kterému objektu jsou přiřazeny.
Na příklad procedura události pro ovládací
prvky (control) kombinuje aktuální
jméno ovládacího prvku (které je uvedeno
v položce Name v tabulce vlastností (propertis)uvedeného
objektu) podtržítko ”_” a jméno
události. Na příklad , jesliže si přejete, aby Command1vyvolalo
proceduru jest-li na něho ukážeme myší a ťukneme na pravé tlačítko, pak
použijete jméno procedury které má následující tvar Sub Command1_Click.
Událostní procedura okna formy kombinuje slovo Form s jménem
události na příklad Sub Form_Clic.
Syntax událostních procedur
Syntax pro
ovládací prvek (control event) |
Syntax pro formulář |
Sub
JménoOvládacíhoprvku_JménoUdálosti(
) instrukce programu
'blok příkazů End
Sub |
Sub Form_ JménoUdálosti( ) instrukce
program ' blok
příkazů End Sub |
Slova Sub a End Sub označují začátek a konec procedur.
Poznámka : Je důležité si uvědomit, že je nutno, pokud si jména ovládacích prvků přejeme změnit, změnit jejich jména před tím než začneme psát kódy procedur. Visual Basic totiž jméno kontroly automaticky dosazuje do jména událostní procedury a v případě že jméno kontroly změníte až po napsání kódů musíte zpětně přepsat jména všech procedur.
Událostní procedury mohou vyvolávat jiné procedury, které se ve VB nazývají General procedures. Tyto procedury se začnou vykonávat v okamžiku kdy jsou explicitně zavolány některou částí aplikace.
Proč se tvoří tyto procedury? Důvodem je skutečnost, že různé událostní procedury mohou potřebovat část stejného kódu (stejnou proceduru). Správná strategie programování říká, že v takovém případě není správné zápis kódu několikrát opakovat, ale je lepší vytvořit tuto část podprogramu jako samostatnou proceduru. Po vytvoření nové General procedure otevři okno pro psaní kódu ( Code Window) Pak zavolej z hlavního menu VB položku Insert a v ní položku Procedure (obr.21 ) po odklepnutí položky se objeví okno Insert Procedure pomocí kterého se určí jméno a typ procedury a typ proměnných. Jiný možný postup je ten, že vytvoříte novou hlavičku procedury v okně Code view a dodržíte správný syntax.jak je uvedeno výše. Po napsání kódu ukončíte proceduru End Sub, VB automaticky tuto proceduru zaregistruje a její volání pro editaci je možné pomocí combo boxu ve formuláři Code window příkazem.
obr.21 |
Sub procedury nevracejí
hodnotu, takže volání Sub procedury představuje příkaz programu. Function procedury jsou částí výrazu .
Syntax pro Sub procedury je následující:
Sub JménoProcedury (seznam parametrů)
Instrukce programu
End Sub
Seznam parametrů je seznam jmen oddělených čárkou pokud jejich více než jeden. Každý parametr vypadá jako deklarace proměnné a vystupuje jako proměnná v proceduře. Syntax každého parametru je:
[By Val] jméno_proměnné [( )] [ As
type]
Pokud neuvedete typ VB automaticky přiřadí proměnné typ Variant. Tento typ je velmi flexibilní a bude popsán v další části textu, stejně jako typy Integer, String, Long, Single, Double,Currency, uživatelsky definovaný typ a objektový typ.
obr.22 |
Pokaždé když je procedura zavolána instrukce programu mezi Sub a End Sub se vykonají. VB provede substituci každého přiřazeni korespondujícímu parametru ze seznamu. Pokud VB volá proceduru události dosadí hodnotu každého parametru, (pokud událostní procedura nějaké má). Pokud je volána general procedure musí programátor zajistit, aby se provedlo dosazení hodnot parametrů. Na příklad :
Sub Pípnuti (Počet)
Dim
I
For I = 1 to Počet
Beep
Next I
End
Sub
Tato procedura pro parametr Počet =3 by se pak volala následujícím způsobem :
Pipnuti 3 nebo Call Pipnuti(3)
Syntax pro Function
je následující:
Function JménoFunkce
(seznam parametrů) As type
instrukce podprogramu
End Function
Práce s parametry je stejná jako bylo výše popsáno v Sub procedurách. Na rozdíl od volání procedury musíte vždy při volání Function uvést hodnoty parametrů do závorky ( klíčové slovo Call není možno pro volání Function použít). Každá Function má typ, který určuje typ hodnoty Function procedure při návratu. Pokud nepoužijete pro určení typu klausuli As pak hodnota Function procedure je typu Variant. V těle funkce musí být jménu funkce přiřazena hodnota, která má být výsledkem volané funkce hodnota musí být deklarovaného typu. Na př.:
Function Prepona (A,B)
As Real
Prepona = Sqr( A^2 + B^2)
End Function
Volání této
procedury má pak následující tvar :
C
= Prepona(k,l)
Lokální a globální platnost procedur (Public and Private Procedures) procedury (Sub, Function) umístěné v modulu formy jsou lokální (private) v tomto formuláři, to zanmená, že nemohou být volány mimo formulář ve kterém se nacházejí. Procedury (Sub, Function) umístěné v modulu kódů (Code modul) jsou globální (public) což znamená, že mohou být volány z libovolního místa aplikace. Poněvadž procedury ve formulářích jsou private mohou se v aplikaci v různých formulářích vyskytovat procedury stejného jména. Na příklad každý formulář má proceduru Form_Load( ). Naproti tomu public procedury kódových modulů musí mít unikátní jméno. Pokud vytvoříte v určitém formuláři proceduru se stejným jménem jako je jméno procedury v kódovém modulu, pak VB postupuje následujícím způsobem. Nejprve hledá proceduru volaného jména v modulu formy ze kterého je procedura volána, nenajde-li ji hledá proceduru volaného jména v kódovém modulu.
Lokální procedury v kódovém modulu Někdy je nutné vytvořit lokální proceduru také v kódovém modulu. Na příklad máte nějakou proceduru související s nápovědou, která nemá být volána z jiného modulu, pak vytvoříte hlavičku procedury pomocí klíčového slova Private (např. Private Sub Pomoc ( ) ) Slovo Private je možno použít i ve formuláři ale není to nutné neboť ve formuláři jsou všechny procedury lokální.
Komentáře při vytváření aplikace ve VB je vhodné doplnit zdrojový text podprogramu komentářem. To umožňuje lepší přehlednost programu i po delší době po jejím vytvoření. Komentáře se označují apostrofem ‘ . Apostrofem označenou část programu VB ignoruje při interpretaci ignoruje. Na příklad:
Sub Zapis
(JmenoSouboru) ‘Procedůra pro zápis do spuboru
Instrukce programu VB představuje normálně jeden řádek podprogramu a nemusí být zakončena žádným oddělovacím znaménkem jako na příklad v Pascalu. Pokud si z nějakého důvodu přejete umístit více příkazů na jeden řádek pak je nutno tyto příkazy oddělit : (dvojtečkou), např.:
Text1.text
=”Praha” : Print Text1.text: End
Konvence pro vytváření literálů pro pojmenování podprogramů, proměnných, konstant atd. Jména která se vytvářejí musí splovat následující pravidla:
· musí začínat velkým písmenem;
· Musí obsahovat pouze písmena, čísla a podtřžítko. Interpunkční znaménka a mezery nejsou dovoleny;
· Nesmí být delší než 40 znaků;
· Slova která vytvoříte nesmí bát stejná jako rezervovaná slova.
Seznam rezervovaných slov je obsažen v Helpu jazyka VB
Jedna z nejčastěji se vyskytujících instrukcí VB je přiřazovací příkaz = který přiřazuje proměnné její hodnotu nebo vytváří odkaz na vlastnosti při kopírování dat z jednoho míst na jiné:
destination = source ‘cíl = zdroj (odkaz) kopíruj informaci ze zdroje do cíle
cil (destination) musí být proměnná nebo odkaz na vlastnost. zdroj (source) musí být platný výraz VB a může vyvolat výpočet.
Přiřazovací příkaz provádí ve VB tři akce:
· Nastavuje
hodnotu vlastnosti
· Mění
hodnotu vlastnosti
· Dosazuje
nebo mění data v proměnné
Nastavení hodnoty vlastnosti objektu se provádí před spuštěním aplikace v módu design pomoci tabulky vlastnosti (obr. 10). Nebo za běhu aplikace pomocí přiřazovacího příkazu na jehož levé straně je object.property na příklad:
Text1.text =
”Pozor” ‘ odkaz
kopíruje data do objektu Text1
Text1.BackColor = 255 ‘odkaz zpùsobí zmìnu vlastnosti pozadí zèervená
Změna vlastností v jiných formulářích pokud má aplikace více formulářů pak se můžete odkazovat na vlastnosti v jiných formulářů nebo na vlastnosti ovládacích prvků v jiných formulářích . Syntax příkazu který je umístěn v kódovém modulu na příklad formy Form1 a má měnit vlastnosti ve formuláři Form2 nebo jeho ovládacích prvcích je takový, že před objektem daného formy musíme uvést o který formulář se jedná na příklad:
Form2.Caption
= ”Kalkulačka” ‘ změní
jméno formy Form2 z libovolného modulu
Form2.BackColor
= 0 ‘ změní barvu formy Form2 z libovolného modulu
Form2.Text1.Text = 689 ‘ kopíruje do objektu Text1 formy Form2 hodnotu 689
Poznámka: Podrobný popis vlastností jednotlivých objektů i s příklady odkazů na vlastnosti je obsažen v Helpu programovacího jazyka VB v kapitole Property Summary (viz obr.23 a obr.24).
obr24 |
obr.23 |
obr.24 |
Visual Basic stejně jako jiné programovací jazyky používá proměnné na ukládání hodnot.
Proměnná musí mít jméno (to je slovo , které odkazuje na hodnotu kterou proměnná obsahuje) a datový typ ( který určuje typ dat která se dají do proměnné ukládat).
Deklarace proměnných VB nevyžaduje explicitně deklaraci nebo vytváření proměnných. Když použijete jméno, které se neshoduje s žádnou jinou proměnnou, VB vytvoří novou proměnnou s tímto jménem. Přesto je správné a programátorská praxe to doporučuje, deklarovat všechny proměnné použité v aplikaci. (Ve většině programovacích jazyků je to nutné). Pokud nastavíte v Environment v okně Option Requiere Variable Option na zapnuto (obr.24 ) pak je deklarace proměnných povinná. V modulech je pak v deklaracích (General) uveden příkaz Option Explicit.
Deklarace proměnných se provádí pomocí klíčového slova Dim :
Dim Jméno_proměnné
Jména proměnných se vytvářejí podle stejných pravidel, jako ostatní jména ve VB. Na př.:
Dim Vysledek
Datový typ je základní charakteristikou datových prvků VB. Determinuje vlastnosti datového prvku uchovávat určitý druh dat Přehledně jsou vlastnosti jednotlivých datových typů uvedeny v tab.1. Datový typ (proměnné, konstanty, funkce..) určuje jednak způsob datové reprezentace prvku v paměti, jednak způsob interpretace této hodnoty. V deklaraci je možno datový typ definovat pomocí klíčového slova označujícího daný typ nebo pomocí přípony (sufixu). Klíčové slovo i sufix jsou u základních typů uvedeny v tabulce tab.1.
Typ proměnné pak deklarujeme příkazem
Dim Jmeno_promenne
As typ
Na přáklad: Dim Prepona As Single
Rozsah a doba života proměnných. Proměnné deklarované uvnitř procedury existují jen po dobu pokud je procedura prováděna (jsou dynamické), jakmile skončí hodnota proměnné je ztracena. Kromě toho platí, že tyto proměnné jsou lokální. to znamená, že se nemůžete odvolávat na proměnné v jiných procedurách. To umožňuje aby v různých procedurách byly proměnné stejného jména.
Rozsah
proměnné |
Deklarace |
Lokální |
Dim, Static, nebo ReDim (uvnitř procedury) |
V modul |
Dim (v deklarační sekci formy nebo kódového modulu) |
V celé aplikaci |
Public, nebo Global (v deklarační sekci modulu) |
tab.2.
V tabulce dvě jsou uvedeny rozsahy platnosti proměnných v závislosti na použitém klíčovém slově a místě deklarace proměnné. Jak je patrno dočasné lokální proměnné se deklarují pomocí klíčového slova Dim, jejich doba životnosti je dána délkou provádění procedury. Pokud je nutno uchovat hodnotu lokální proměnné do dalšího spuštění dané procedury (např čítač cyklů) , pak musíme tuto prměnnou definovat pomocí kláčového slova Static. Procedura uvedená jako příklad ukazuje použití deklarace statické proměnné jako paměti v funkci pro provádění celkového součtu.
Function Celkovy_soucet
(Mezisoucet As Curency)
As Curency
Static Pamet
Pamet = Pamet + Mezisoucet
Celkovy_soucet = Pamet
End Function
Pokud by Pamet byla deklarována jako Dim nikoliv Static pak by tato funkce pro vytvoření celkového součtu byla nepoužitelná, neboť proměnná Pamet by se po každém použití funkce vymazala.
Deklarace všech lokálních proměnných jako statických je možná tak, že klíčové slovo Static předřadíme před proceduru například hlavička předchozí procedury by se změnila na:
Static
Function Celkovy_soucet (Mezisoucet
As Curency) As Curency
To způsobí, že všechny
proměnné v proceduře bez ohledu na to byly - li deklarovány jako Dim,
Static nebo implicitně budou statickými proměnnými.
Typ Variant pokud u deklarace proměnné neurčíme typ nebo je-li deklarace proměnné implicitní pak je proměnné automaticky přiřazen typ Variant Do proměnné typu Variant je možno ukládat nejrůznější druhy dat, jako textové boxy, čísla textové řetězce, datum, ćas. Pokud nehodláte provádět konverzi mezi jednotlivými typy při dosazování do proměnné typu Variant pak VB provede nezbytnou konverzi automaticky. Na příklad:
Dim Nejaka_Hodnota ‘VB
dosadi typ Variant
Nejaka_Hodnota = ”
Nejaka_Hodnota = Nejaka_Hodnota - 15 ‘ Hodnota proměnné je celé číslo 2
Nejaka_Hodnota = Nejaka_Hodnota + U2 ‘ Hodnota proměnné je řetězec o čtyřech znacích ”17U22”
Při použití typu Variant mohou nastat potíže pokud použijete na příklad operátor + , neboť tento operátor je použitelný jak pro textové řetězce tak pro numerické operace. Při jeho použití se provede operace závislá na obsahu proměnných. Tento problém lze obejít použitím operátoru & pro øetězcové operace.
Proměnná typu Variant je ukládána co nejúspornějším způsobem v paměti ale její interní reprezentace zachovává typ který ji byl přiřazen při jejím naplnění. Bez problémů však tento typ v průběhu činnosti programu mění dle potřeby. Pokud si přejete zjistit, jaký typ má interně hodnota proměnné v daném okamžiku, můžete to zjistit pomocí funkce Var Type. V tabulce 3. je uveden hodnota této funkce pro jednotlivé typy.
Hodnota funkce Var Type |
Typ |
0 |
Empty |
1 |
Null |
2 |
Integer |
3 |
Long |
4 |
Single |
5 |
Double |
6 |
Currency |
7 |
Date/Time |
8 |
String |
Numerické typy
v typu Variant pokud přiřadíte proměnné typu Variant celočíselnou
numerickou hodnotu použije VB pro její uloženi typ Integer pokud
přesáhne hodnota proměnné velikost tohoto typu VB automaticky použije typ Long
případně Double.
Textový řetězec
uložený jako Variant ne přináší až na vyjímky kdy není jasní zdali
proběhne operace sčítaní čísel v textovém tvaru jako matematická či
textová operace.
tab.3
Ukládání Data/Času do typu Variant
.
existuje řada funkcí VB , které obsahují hodnoty času nebo data na příklad:
Sub Form_Clic ( )
Dim PraveTed, Vcera, PredHodinou, PredMinutou
PraveTed = Now
'Now vrací okamžitá čas nastavený v systému
|
Vcera = PraveTed - 1
obr.24. |
PredHodinou = Hour(PraveTed) - 1
PredMinutou = Minute(PraveTed) - 1
Form1.Print PraveTed
Form1.Print Vcera
Form1.Print PredHodinou
Form1.Print PredMinuto
End Sub
Výsledek procedury je na obr. 24.
Hodnota Empty
proměnné typu Variant někdy je třeba zjistit zdali do proměnné již
byla v průběhu činnosti programu od jeho spuštění dosazena hodnota.
Proměnná typu Variant nabývá po deklaraci a před prvním použitím hodnotu
Empty která není totožná ani s hodnotou 0 nebo ”” . Tuto
hodnotu je možno testovat pomocí funkce IsEmpty na př:
If IsEmpty(z) Then
Z = 0
Proměnnou z hodnotou Empty je možno použít jak v numerickém tak textovém výraze, VB dosadí podle potřeby 0 nebo textový řetězec nulové délky.
Hodnota Null proměnné typu Variant je jiná speciální hodnota, kterou může nabývat proměnná tohoto typu. Využívá se v databázových aplikacích a indikuje neznámá nebo chybějící data. 0 má speciální charakteristiky:
·
Výrazy obsahující Null dávají vždy výsledek Null .
·
Jetsliže dosadite za argument Null nebo
proměnná typu Variant je rovna Null a použijeme li jako argument procedury nebo
funkce pak procedura nebo funkce vrací Null .
Jest-li proměnná obsahuje hodnotu Null zjistíme pomocí funkce IsNull( x).
Ostatní fundamentální typy jsou uvedeny v tab. 1. Jejich deklarace se provádí pomocí klíčovách slov Dim, Public, Static a As .
Dim
I As Integer. L As Integer
Public K As
Double
Static
S As Single
Pokud nechceme, aby proměnná byla typu Variant při zápisu více proměnných za jedno klíčové slovo Dim, pak musíme u každé proměnné použít klíčové slovo As a napsat její typ jako je uvedeno v přvním řádku výše uvedeného příkladu. Následující deklarace by způsobila, že proměnná I by byla typu Variant a L typu Integer.
Dim
L As Integer
Proměnná typu String se deklaruje Dim L As String jedná se posloupnos znaků a číslic uložených v kódu ASCII může nabaývat délku až 232 znaků. Řetězce s pevně danou délkou moho nabývat délky až 65 536 znaků. Pevná délka se definuje pomocí následujícího výrazu String*size na přílklad:
Dim L As String*50
Proměná typu Pole umožňuje vytvářet indexované proměnné. To je jedno a více rozměrná pole proměnných jednoho typu. Na př
Dim Tabulaka(10,10) As Single
Vytvoří dvourozměrné čtvercové pole proměnných Tabulka(0,0) až Tabulaka(10,10) pokud bychom si přáli, aby index nezačínal od nuly ale od jedné můžeme použít príkaz
Option Base 1 která způsobí, že prvním prvkem pole bude Tabulka(1,1). Nebo můžeme deklarovat rozsah pomocí dolního a horního indexu na příklad Vektor(10 To 20,5 To 8) pak prvním prvkem bude Vektor(10,5) a posledním Vektor(20,8).
Ve VB můžeme použít až 60-ti dimenzí pole. Je nutno si však uvědomit že vícedimenzionální pole kladou velké nároky na pamnět.
Dynamické pole často nevíme jaký rozměr budeme potřebovat v průběhu práce programu.Pak stanovíme deklaraci pole jako dynamickou tak, že neuveeme dimenze a za proměnnou napíšeme prázdnou závorku celkový počet dimenzí dynamického pole je 8:
Dim NafukovaciPole() As Single
A v okamžiku, kdy si přejeme pole použít stanovíme jeho rozsah pomocí příkazu ReDim např.
ReDim
NafukovaciPole(X+1,Y)
Tento příkaz je možno použít pouze uvnitř procedury. Jakmile jednou uvnitř dané procedury stanovíme počet rozměrů pole je možno v další části procedury měnit pouze pročet prvků v nikoliv rozměr pole.
Zachování obsahu dynamického pole Každé volání příkazu ReDim způsobí vymazaní obsahu pole. VB nastaví proměnné na hodnotu Empty pro proměnné typu Variant, na 0 pro proměnné číselného typu , na řetězec nulové délky pro proměnné typu String a na Nothing pro typ Objekt. To je v pořádku pokud si přejete do pole zapsat nové hodnoty proměnných. Pokud si ale přejete zvětšit rozsah pole, aniž by jste ztratili zapsaná data pak můžete zachovat data pomocí příkazu Preserve. Na příklad potřebujete zvětšit v průběhu práce procedury velikost pole o 1.Provedete to příkazem :
ReDim
Presserve MePole (UBound(MePole) + 1)
Funkce UBound udává maximílní index daného pole LBound počáteční index.
Kromě výše uvedených předefinovaných datových typů je možno vytvářet vlastní datové typy, které jsou buď přejmenováním některého stávajícího typu, nebo kombinací několika stávajících typů v jedné datové struktuře, která je obdobou záznamu v jazyce Pascal nebo C. Pomocí příkazu Type může programátor označit jedním identifikátorem skupinu položek různých datových typů (fundamentálních, nebo Variant), ze kterých se bude nový datový typ skládat. Všechny definice typu musí být uvedeny v deklaračních sekcích basických modulů Příklad :
Type
TZamestnanec
Prijmeni As String
Jmeno As String
Mzda As Currency
Ende
Type
Tím vznikne heterogenní datová struktura . Heterogenní se nazývá proto, že její jednotliví složky mohou být různých datových typů. kdekoliv v další části programu může programátor deklarovat proměnné pomocí tohoto typu způsobem jak je uvedeno dále:
Dim Urednik As TZamestnanec RodneCislo As Long
Odkaz na jednotlivé složky proměnné se provádi pomocí tečkové notace podobně jak je tomu v jiných programovacích jazycích , tj. k identifikátoru proměnní se připojí identifikátor položky pomocí operátoru tečka.Na příklad:
Urednik.Prijmeni
= ”Kebrle”
Urednik.Jmeno = ””Karel”
Urednik.RodneCislo = 3808124435
Urednik.Mzda = 17000.00
Kromě datových operuje VB také s typy objektovými.. Narozdíl od proměnných datového typu se prvky objektových typů nazývají instance . Jednotlivé objektové typy jsou přehledně uvedeny v tabulce 1.
Možnost vytvářet instance přináší řadu výhod. Na příklad instance formy umožňuje vytvářet při běhu aplikace kopie původního objektu, který je zcela nezávislý na originálu.
obr.25. |
Sub Command1.Clic ( )
Dim
F as New Form1 ‘Deklarace instance Form
F.Show ‘Nahrani a otevreni Formy
F.Move
Left + (Width / 10), Top + ( Height /
10)
‘Posun
o desetinu výšky a šířky
End
Sub
Na obrázku 25. je ukázána činnost výše
uvedení procedury po pětinásobném ťuknutí na tlačítko Command1. Vzniklo
pět nezávislých formulářů.
Deklarování instancí Instance i
proměnné jsou vytvářeny stejným způsoben deklarací pomocí příkazů Dim,
ReDim,Public, Private, Static. Nové je pouze klíčové slovo New
{Dim|ReDim|Static|Public}
JmenoPromenne As [New] objecttype
Dim
F As New Form1 ‘ Form1
musí v dané aplikaci existovat
Dim FK As Form ‘Tato deklarace umožňuje do instance FK uložit libovolná objekt typu Form
Dim TxtoveOkno As TextBox
Object. Představuje základní objektový typ Veškeré instance tohoto typu jsou ve skutečnosti odkazy tedy ukazatelé. Tento typ také může sloužit pro přenos těch parametrů podprogramů, které mají objektový charakter.
Obecný objektový typ. Jsou to abstraktní objektové typy, které nesmí vystupovat v žádní skuteční deklaraci nebo přiřazení, neboť obecně reprezentují třídu konkrétních objektových typů. Mohou však vystupovat jako formální parametry podprogramů, kde je abstraktní rys žádoucí. Obecnými objektovými typy jsou na příklad Form, zastupující objekt formulíře, nebo typ Control, zastupující typ ovládacího prvku.
Konkrétní objektové typy. Jsou
objektové typy vytvořené v čase tvorby aplikace(designe time),
z nichž pak mohou vyniknout pomocí deklaračních příkazů nové instance.
(viz příklad uvedený na obr.25.) již dynamicky v průběhu práce aplikace
(rune time). Mohou to být všechny formy a
ovládací prvky použité v aplikaci a také databázové objekty jako
Database, Table, Field atp.
Vzhledem k charakteru instance objektového typu lze těžko hovořit o konkrétní hodnotě instance, neboť ta je tvořena jak daty tak i podprogramy. Proto také způsob manipulace s instancemi bude jiná než způsob manipulace s proměnnou. K naplnění instance se používá příkazu Set. Díky dědičnosti může však instance být naplněna již pří samotné deklaraci pomocí klíčového slova New. Pokud není instance inicializována při deklaraci pohlíží se na ni, jako by obsahovala hodnotu Nothing. Příklad:
Dim
db As Database, tb As Table ‘deklarace
obecných objektových typu
Set db = OpenDatabase(”C:\Topkat.mdb”) ‘dosazeni konkretní databaze a jeji otevřeni
Set tb = db.OpenTable(”Ucty”) ‘ dosazení a otevřeni tabulky v databazi
Objekty typu Control
ActiveMovie - video,zvuk |
Image - obrázek |
CheckBox - zašktávací políčko |
Line - čára |
ComboBox - kombinované pole se seznamem |
ListBox - seznam |
CommandButton - tlačítko |
Menu - nabídka |
CommonDialoge - dialogové pole |
OptionButon - příkazové
tlačítko |
Data - data |
OLE - propojeni OLE |
DirListBox
- seznam složek na disku |
PictureBox - obrázkové pole |
DriveListBox - seznam disků |
Shape - obrazec |
FileListBox - seznam souborů |
TextBox - textové pole |
Gird - tabulka |
Timer - časovač |
Frime - rám |
VScrollBar |
HScrollBar - horizontální
rolovací lišta |
DBGird |
Pole instancí typu Form Pomocí klíčových slov Dim, ReDim, Static , Public, New je možno deklarovat pole instncí tím samým způsobem jako pole jiného typu proměnných.
Public Tiskopis( ) As New frmNotePad ‘ deklarace globálního dynamického pole
Dim PracovniFormular(10) As Form ‘ deklarace lokálního pole o rozměru 10
Pole instancí typu Control se deklaruje pomocí klíčových slov Dim, ReDim, Static a Public na rozdíl od deklarace předchozího typu nelze použít klíčové slovo New.
ReDim AktivniObrazek(15) As Image ‘Deklarace pole 15 obrázků
Výrazy jsou vhodné kombinace operandů a operátorů, které dávají výsledek číselného nebo řetězcového typu. Výrazy vystupují v přiřazovacích příkazech, jako parametry ostatních příkazů nebo jako skutečné parametry podprogramů.
Operátor určuje druh operace, která bude ve výrazu provedena nad operandy. Podle počtu operandů zúčastňujících se operace rozlišujeme operátory :
· unární
- v tomto případě souvisí operátor pouze s jediným
operandem který většinou následuje za operátorem na př. unární mínus D = -
B nebo logická negace Muž = Not Žena
· binární
- operátor obklopují dva operandy. Až na uvedené dva operátory jsou
ve VB všechny ostatní operátory binární.
Aritmetické operátory operandy těchto operátorů jsou některého z číselných typů. Obecně platí, že výsledek operace se určí podle přesnějšího typu obou operandů . na příklad bude -li jeden operand typu Single a druhý Duble pak výsledek bude typu duble. Typy operátorů:
· Sčítání + , odčítání - , násobení * a dělení / jako základní aritmetické operátory. Mezi tyto základní aritmetické operátory započítejme i unarní mínus.
· Celočíselné
dělení \ . Výsledkem této operace je číslo typu Integer nebo Long
představující celou část podílu obou operandů. Na příklad výraz 10 \ 3
dává výsledek 3. I v tomto případě může být každý z operandů
libovolného číselného typu. Pokud však operand není celočíselného typu , bude
před vlastním provedením operace zaokrouhlen na celé číslo.
·
Zbytek po dělení - modulo Mod .
Výsledkem operace je číslo typu Integer nebo Long představující
zbytek po dělení obou operandů. Například
10 Mod 3 dává výsledek 1.
·
Mocnění ^ . Výsledkem je první operand
(mocněnec) umocněný na druhý operand. Mocněnec může být záporné číslo pouze
v případě, že mocnitel je celé číslo. Pokud má mocněnec hodnotu Null, pak
výsledek má hodnotu Null. Protože operandy mohou být i neceločíselného typu je
možno provádět i operace odmocňování. Pokud zařadíme vedle sebe více čísel a
operátorů bez závorek pak je tento zápis chápan jako mocnina mocniny .
výraz 2 ^ 3 ^ 4 je totožný
s výrazem (2 ^ 3) ^ 4 .
Logické operátory vystupují v logických výrazech, které jsou na příklad součástí parametrů příkazů If nebo While , kde slouží jako podmínka.
Logické operátory
jsou vlastně operátory číslnými pracujícími nad jednotlivými bity hodnot
některého celočíselného typu. Logické hodnoty True nebo False mají
ve skutečnosti číselnou hodnotu
Logický součin And, logický součet Or, exklusivní součet Xor, ekvivalenci Eqv a implikaci Imp. Výsledky operací jsou uvedeny v tabulce 5.
Operandy |
|
And |
Or |
Xor |
Eqv |
Imp |
||||
0 |
0 |
0 |
0 |
0 |
1 |
1 |
||||
0 |
1 |
0 |
1 |
1 |
0 |
1 |
||||
1 |
0 |
0 |
1 |
1 |
0 |
0 |
||||
1 |
1 |
1 |
1 |
0 |
1 |
1 |
||||
tab.5
Relační operátory, výsledkem relační operace je vždy hodnota True nebo False. Operandy relačních operací mohou být numerické, i řetězcové. Pro operátor Is musí být oba operandy objektové. U numerických operátorů dojde nejprve k sjenocení přesnosti a pak teprve k porovnání. V případě řetězcových operandů se bere v uvahu způsob porovnávání nastavený pomocí příkazu Option Compare {Binary | Text }.Vzhledem k tomu, že VB provádí konverzi typů je někdy složité určit, jakým způsobem se má porovnání provést, zda chápat operandy jako čísla nebo řetězce. Proto platí následující pravidla:
Pro oba numerické operandy se provádí numerické porovnání, totéž platí pro řetězcové.
Pokud jeden z operandů je
numerický druhý lze na numerický konvertovat na př. ”
Jsou -li oba variant záleží na jejich konkrétních druzích.
Je-li jeden typu Currency a druhý typu Single nebo Double provádí se před porovnáním konverze na typ Currency!Vzhledem k tomu, že typ Currency má přesnost pouze na čtyři desetinná místa , může dojít ke ztrátě přesnosti druhého operandu a tím i ke skreslení výsledku operace.
Je - li jeden z operandů typu Single a druhý Double , provádí se před porovnáním zaokrouhlení na typ Single. To může vést ke stejně nepříjemným problémům jako v bodě 4.
Visual Basic rozeznává následující relační operátory :
·Rovnost =. Výsledek má hodnotu True, pokud mají oba operandy stejnou hodnotu, jinak má hodnotu False.
·Nerovnost < >. Výsledek má hodnotu True , pokud mají oba operandy různou hodnotu, jinak má hodnotu False.
·Menší než < . Výsledek má hodnotu True , pokud má první operand menší hodnotu než druhý operand, jinak má hodnotu False.
·Větší než >. Výsledek má hodnotu True , pokud má první operand větší hodnotu než druhý operand, jinak má hodnotu False.
·Menší nebo roven < = . Výsledek má hodnotu True , pokud má první operand menší hodnotu než druhý operand, nebo je mu roven, jinak má hodnotu False..
·Větší nebo roven > =. Výsledek má hodnotu True , pokud má první operand větší hodnotu než druhý operand, nebo je mu roven, jinak má hodnotu False..
·Rovnost podle vzoru Like. Výsledek má hodnotu True , pokud první operand řetězcového typu odpovídá vzoru , kterým je druhý operand. Vzor je vlastně reglární řetězcový výraz , který může obsahovat následující znaky:
? v kterémkoliv místě vzoru nahrazuje právě jeden libovolný znak. Např. vzoru ”a?c ” mohou odpovídat řetězce ”abc”, ”axc”, a podobně;
# v kterémkoliv místě vzoru nahrazuje jednu číslici. Například vzoru ”a#c” mohou odpovídat řetězce ”a1c”, ”a9c”, a podobně;
* v kterémkoliv místě vzoru nahrazuje žádný a více znaků . Například vzoru ”a*c” mohou odpovídat řetězce ”ac”, ”axzuc” nebo ”a1236c”;
[seznam] v kterémkoliv místě vzoru nahrazuje právě jeden znak ze seznamu. Například vzoru ”a[prs]c” mohou odpovídat ”apc”, ”arc” nebo ”asc”;
[!seznam] v kterémkoliv místě vzoru nahrazuje právě jeden znak , který neptří do seznamu. Např. vzoru ”a[!klm]c” mohou odpovídat řetězce ”acc”, nikoliv však”akc”.
Seznam
může obsahovat také interval znaků , [a-zA-Z] bude souhlasit
s každým písmenem a bude obdobou ?
Rovnost instancí
objektového typu Is. Tento operátor má pro instance obdobný význam
jako operátor rovnosti pro operandy datových typů. Jsou li například L a
K instancemi, pak po příkazu
Set P = L
bude hodnota L Is P rovna True.
Řetězcové
operátory, výsledek operace řetězcového operátoru bude hodnota typu
řetězec. Také opa operandy musí být řetězcového typu nebo je nutno je před
operací na řetězec konvertovat.
Zřetězení
+. Výsledkem operace je spojení dvou operandů na př. ”abc” + ”def” výsledkem je
řetězec ”abcdef”. Operandy musí být řetězcového typu.
Zřetězení
&. Výsledkem je zřetězení dvou operandů které mohou být i jiného typu
na př Variant.. Před vlastní operací se hodnoty převedou na řetězce, výsledek
je řetězcového typu.
Priorita
operátorů
Aritmetické |
Relační |
Logické |
|
Mocnina ^ |
Rovnost = |
Negace Not |
|
Unární mínus - |
Nerovnost < > |
Logický součin And |
|
Násobení dělení * / |
Menší než < |
Logický součet Or |
|
Celočíselné dělení \ |
Větší než > |
Nonekvivalence Xor |
|
Zbytek po dělení Mod |
Menší než rovno < = |
Ekvivalence Eqv |
|
Sčítání odčítání + - |
Větší než rovno > = |
Implikace Imp |
|
Zřetězení & |
Like |
|
|
|
Is |
|
|
Příkaz jazyka je syntaktickou jednotkou, která zujímá jeden nebo více řádků zdrojového textu v deklaraci, podprogramu nebo definiční sekci modulu. Pokud příkaz potřebuje více řádků nazývá se strukturovaný takový příkaz má tělo, kterým je sekvence příkazů ohraničena úvodním a koncovým řádkem. V následujícím textu budou uvedeny jednotlivé příkazy se stručným vysvětlením činnosti příkazu. Podrobný popis příkazu včetně příkladů použití je uveden v Helpu VB a je možno ho nalistovat v rejstříku.
Slouží k vytváření proměnných datového typu, nebo instanci objektových typů. Nemají charakter výkonných příkazů, jako na příklad příkazy cyklu nebo přiřazení.. Obecně však mohou být umístěny na libovolném místě v těle podprogramu, je však pokud k tomu není nějaký důvod zvykem umísťovat je na začátek podprogramu.
·[ Public] Const jméno = výraz[, jméno =
výraz] ...
Deklarace konstanty
·Dim jméno
[( [dimenze] )] [As] [New] typ] [,jméno [( [dimenze] )] [As] [New]
typ]] ...
Deklarace proměnné nebo instance
·
ReDim [Preserve] JmenoPole
(dimenze) [As typ] [,JmenoPole (dimenze) [As typ]]
Změna deklarace dynamicky
deklarovaného pole
· Erase JmenoPole [,JmenoPole]
...
Uvolnění paměti kterou zabírá dynamické pole nebo opětná inicializace statického pole:
· Global jméno [( [dimenze] )] [As] [New] typ] [,jméno [([dimenze] )] [As] [New]
typ]]
Příkaz deklaruje proměnné nebo
instance . Na rozdíl od příkazu Dim je ho možno použít pouze
v deklarační sekci basického modulu , kde stanoví globální platnost
deklarovaných proměnných nebo instancí v celé aplikaci.
· Public jméno [( [dimenze] )] [As] [New] typ] [,jméno [([dimenze] )] [As] [New]
typ]]
je možno použít ve stejnném
smyslu jako deklaraci Global
· Static jméno [( [dimenze] )] [As] [New] typ] [,jméno [([dimenze] )] [As] [New]
typ]]
Má podobný účinek jako Dim to je deklaruje proměnné nebo instance. Na rozdíl od Dim však může být použit pouze v těle podprogramu nebo funkce. Při opuštění procedura neztrácí proměnná i když je pro ostatní části programu nepřístupná hodnotu a po novém volání procedury má takto deklarovaná proměnná hodnotu, kterou nabyla při posledním volání podprogramu.
· [ {Private
|Public}] Type JmenoTypu
JmenoPolozky
[ dimenze] As DatovyTyp
[JmenoPolozky [ dimenze] As DatovyTyp]
....
End Type
Tento příkaz dovoluje programátorovi definovat vlastní datové typy sestavené z jiných datových typů.Datový typ každé položky musí být explicitně zadán identifikátorem datového typu.
Klíčová slovo Private, Public určují rozsah platnosti definice typu. Jejich použití má význam v basických modulech. Položka může být i sataické pole t.j indexové rozsahy musí být zadány. Počet možných dimenzí je 60.
Tato definice typu může být zapsána pouze v deklarační časti basického modelu.
·
[Static]
[ {Private |Public}] Function jmeno ( [
parametry] )[ As typ]
[ tělo]
[jméno = výraz]
[Exit Function]
[ tělo]
[jméno = výraz]
End Function
Příkaz Function je složený příkaz , jehož tělo musí být ukončeno příkazem End Function. V těle funkce se mohou vyskytovat všechny povolené příkazy, volání metod, nebo obslužných podprogramů událostí.Pokud je uvnitř těla uveden příkaz Exit Funktion, bude sekvence příkazů v tomto místě přerušena a provede se návrat do volajícího podprogramu. Klíčové slovo Static určuje, že všechny proměnné ve funkci budou statické. Klíčové slovo Private říká, že funkce bude lokální na úrovni modulu.
Složka parametry představuje seznam vstupních parametrů, který může mít následující tvar:
[ Optional][{ByVal | ByRef}]{ParamArray]
parametr [ ( )] [ As typ][ .... ]
Parametr představuje formální parametr . Pokud má být parametr polem indexovaných proměnných je nutno za ním uvést prázdné závorky.
Typ formálního parametru může být libovolný typ včetně typů objektových a uživatelských. Nesmí být použit řetězec pevné délky. ( např.String *50). Pokud není typ stanoven pomocí klauzule As pak je deklarován automaticky jako typ Variant.
Je-li uvedeno slovo ByVal, znamená to, že je parametr volán hodnotou není li uvedeno nic nebo ByRef je parametr volán odkazem. Slovo Optional určuje, že daný parametr je nepovinný, může scházet., hodnota skutečného parametru má pak hodnotu Error 448.
Klíčové slovo ParamArray definuje pole předem neznámého počtu parametrů. Pokud funkce nemá formální parametr musí být uvedeny prázdné závorky.
·
[Static]
[ {Private |Public}] Sub jmeno ( [
parametry] )
[ tělo]
[Exit sub]
[ tělo]
End Sub
Význam slov Static, Private, Public, Exit Sub je stejný jako u definice funkce. Totéž platí o seznamu parametrů procedury.
·
[ {Private |Public}] Declare Sub procedura Lib ”knihovna”
[Alias ”NahradniJmenoProcedury”]
[
( [parametry] ) ]
[ {Private
|Public}] Declare Function funkce
Lib ”knihovna”
[Alias ”NahradniJmenoFunkce”]
[
( [parametry] ) ] [ As type]
Příkazem Declare se vytváří procedury, nebo funkce kterí budou v čase výpočtu využávat některou fubkci nebo proceduru z některé jiné standardní DLL knihovny. Hjlavní výhodou tohoto mechanismu je, že programátor může použít standardních knihovních podprogramů, které nejsou ve VB implementovány a které nemusí psát. Nemalou výhodou je redukce velikosti aplikace a vyšší rychlost procedur psaných na př. v jazyce CC+ .
Součástí distribuce VB 4.0 je textový soubor Vb4dll.txt, kde jsou popsány deklarace a způsob použití i návod k vývoji nových DLL knihoven
·
Option
Base {0 |1} Pomocí
tohoto příkazu se specifikuje dolní
hranice indexového rozsahu pole.
·
Option
Compare {Binary | Text} Přákaz slouží k specifikaci porovnávání
dvou řetězcových operandů. Porovnává-li se Binary rozlišují se velká a
malá písmena při porovnávání Text , na se velká a malá písmena nerozlišují.
·
Option
Explicit Ve VB není
povinná deklarace proměnných. Uvedeným příkazem se tato povinnost zavádí. Jak
je uvedeno výše tuto volbu lze nastavit v prostředí VB v režimu
design.
· Def Type
pismeno1 [ - pismeno2] [, pismeno1 [ - pismeno2] ...
Tento příkaz slouží k implicitnímu nastavení typu .Podrobnosti viz Help.
Tyto příkazy způsobí přenos dat mezi dvěma,a paměťovými místy. Je nutno rozlišovat přiřazení datového a objektového typu.
· [ Let ] proměnná = výraz Tento příkaz slouží k přiřazení hodnoty výrazu proměnní. Klíčové slovo Let je podporován spíše z historických důvodů a není povinný.
· LSet RetezcovaPromenna =retezcovy vyraz - dosadí výraz tak, že se zachová délka proměnné RetezcovaPromenna . Pokud je výraz kratší dosadí se zprava mezery. Pkud je delší vezme se pouze tolik znaků kolik činí délka proměnné.
· LSet proměnná1 = proměnná2 tato forma se využívá pro přiřazení uživatelsky definovaných typů. Obě proměnné mohou být libovolného uživatelsky definovaného typu nesmí však obsahovat položku typu Variant nebo řetězec proměnné délky String. Účinek tohoto příkazu je podobná běžnému kopírování bloku dat v paměti do jiného bloku. Pokud je proměnná1 delší než proměnná2 , umístí se obsah proměnná2 nalevo do paměťového prostoru proměnné1. Pokud je delší proměnná2 uloží se do proměnné1 pouze tolik obsahu proměnné2 aby se proměnná1 zaplnila.
· RSet RetezcovaPromenna
= RetezcovyVyraz - jako LSet při rozdílu délek však dosadí
mezery před hodnotu.
·
Set ObjektováProměnná = { ObjektovyVyraz | New
ObjektovyTyp | Nothing}
Příkazem lze
vytvořit nový odkaz na stávající instanci některého objektového typu, za pomocí
klauzule New vytvořit novou
instanci některého objektového typu, nebo specifikovat uzavření instance
přiřazením hodnoty Nothing.
Příkazy cyklu se používají k opakování určité části podprogramu nebo funkce v závislosti na podmínce , nebo předem dané hodnotě.
·
Do [ {While | Until} podminka] [telo] Exit Do [telo] Loop |
V tomto příkazu cyklu se nejprve testuje podmínka podminka Je li použito klíčové slovo While, bude se cyklus provádět v případě splněné podmínky, pokud je použito klíčové slovo Until, provádí se tělo cyklu pro nesplnění podmínky. Takto zadaný cyklu se nemusí vůbec provést . |
· Do [telo] Exit Do [telo] Loop [
{While | Until} podminka] |
Tato forma se liší
od předchozí tím, že podmínka se testuje až po prvním průchodu cyklem. To
znamená , že tělo cyklu se nejméně jednou provede. Uvnitř těla cyklu může být
jednou nebo vícekrát uveden příkaz Exit Do , který způsobí ukončení
cyklu nezávisle na podmínce. |
Podminka je výraz, který nabývá logické hodnoty True nebo False. Podmínkový výraz může být číselný nebo řetězcový . Pokud podmínka nabude nenulové hodnoty přiřadí se podmínce hodnota True, pokud má 0 hodnotu přiřadí se podmínce hodnota False (není podmínka splněna). Podmínkový výraz by měl obsahovat členy nějakým způsobem závislé na příkazech v cyklu například:
n = 1 .... Do While ( n < 20) And (A(n)
= 0) .... n = n+1 ..... Lop |
Pokud není tato zásada dodržena , může dojít k nekonečné iteraci které říkáme ”zacyklení” . Vypustíme-li klíčová slova While a Until je cyklus explicitně nekonečný. Toho lze využít třeba v tk zvané čekací smyčce, kde můžeme pak cyklus ukončit při- |
kazem Exit Do.Přákazy cyklu můžeme do sebe vnořovat
·
While podminka [telo] Wend |
Cyklus While je obdobou cyklu Do While podmínka ovšem musí být uvedena za příkazem While a pdmínkový výraz se testuje před prvním průchodem cyklu. |
||
· For proměnná = zacatek To konec [Step krok] |
|
||
[telo] Exit For [telo] Next promena [, promena]... |
Cyklus For představuje
iterací s předmětem daným počtem opakování. Je dána proměnná
cyklu (též parametr cyklu), které je před vlastním úprovedením iterace
přiřazena počáteční hodnota zacatek, což mů- |
||
|
že být libovolný číselný výraz. Samotná promena musí být některého numerického typu nebo typ Variant. Pokud není pomocí klíčového slova Step upraven krok cyklu pak se hod - |
||
For
c = 1 To 10 ... For
d =5 To 20 Step 5 ... For
k = 15 To 3 Step - 3 .... Next k, d,c |
nota proměnné zvyšuje po každém
průchodu cyklu o jedničku. Krok může být i záprný. Cykly je možno do sebe
vnořovat a pak můžeme všechny cykly zakončit jedním příkazem Next. |
||
·
For Each prvek In skupina [telo] Exit For [telo] Next prvek |
Cyklus For Each slouží
k iteracím přes všechny prvky skupiny Skupinou mohou být buď pole
indexovaných proměnných nebo kolekce. Pokud jde o pole nesmí mít prvky
uživatelsky definovaného typu. Kolekce je uspořádaná množina prvků obecného
typu Objekt, Variant nebo prvků OLE.
Na příklad: |
Dim a
(0 To 9) As Byte, prvek, s As String
s = vbNullString
‘do se uloží konstanta řetězec nulové délky
,,,,
For Each prvek In a
s = s + CStr(prvek) ‘naplní proměnou
písmeny odpovídajícími kódům ASCII
Next prvek
Použití příkazu pro kloekci ukazuje následující příklad:
Dim control
As Object ‘ deklaruje
controlu jako objekt
For Each control In Me.controls ‘ ”zneviditelní ” všechny
ovládací prvky v nastaveném
control.Visible = False ‘formuláři pmoci operítoru Me
Next
control
Do této skupiny příkazů patří příkazy pro větvení programu, ukončování programu, pozastavení programu, příkazy sloužící k ošetření chybových stavů.
· If podminka Then prikaz1[Else prikaz2] |
|
Příkaz If složí k podmíněnému vykonání příkazu nebo bloku příkazů. Podmínkový výraz může bát číselný nebo řetězcový . Pokud podmínka nabude nenulové hodnoty provede se příkaz v klauzuli Then, pokud má 0 hodnotu (není splněna podmínka)provede se příkaz v klauzuli Else. Není-li klausule Else uvedena, neprovede se po nesplnění podmínky 1 žádny příkaz a program pokračuje na dalším řádku. Pokud nahradíme příkaz blokem příkazů pak bloky příkazů mohou mít následující formy:
1.jeden příkaz Vb neb více příkazů na řádku oddělených dvojtečkou.
2. samostatný
příkaz GoTo
3. Numerický literál označující číslo řádku na který se má předat řízení
.....
If A = ”Brno” Then Obyvatel = 450000:
Okres = ”Brno” Else 50 ‘způsob
ad1.
If K = 5 Then
Form1.Print ”Ano” Else Form1.Print ”Ne” ‘způsob
ad2.
If A = ”Olomouc” Then 40 Else GoTo
NaKonec ‘způsob
ad 3.
.....
40 Obyvatel = 106000
....
NaKonec: End ‘NaKonec
jenávěstí.
End Sub
· If
podminka1 Then [blok1] [ElseIf podminka2 [blok2]] ..... [Else [blok_n]] EndIf |
Tato forma příkazu If je složitější, víceřádková a dovoluje větvit program do více bloků. Podmínky mají stejný význam jako v předchozím případě. Je-li splněna podminka1pak se provede blok příkazů1 a podprogram skočí na první řádek za příkazem End If |
Pokud podminka1 není splněna , testují se další podmínky za klausulemi ElseIf a shledá-li se některá splněna provede se blok příkazů nasledující za touto podmínkou, program pak pokračuje za příkazem End If. Před příkazem End If může být ještě jeden blok příkazů oddělený klausulí Else, který se provede není-li splněna žádná z podmínek.
·
TypeOf ObjektovyVyraz Is ObjektovyTyp
·
Výraz z klauzulí TypeOf davá hodnotu
True, pokud je ObjektovyVyraz typu ObjektovyTyp jinak dává
hodnotu False.
· Select Case vyraz Case SeznamVyrazu [blok1] Case SeznamVyrazu [blok2] .... Case Else SeznamVyrazu [blok_n] End Select |
Příkaz Selct Case dovoluje
větvení toku podprogramu v závislosti na hodnotě numerického nebo
řetězcového výrazu vyraz.V jednotlivých větvích příkazu je za klíčovým slovem Case uveden seznam
výrazů, které musí svým typem odpovídat typu testovacího výrazu a jejichž
hodnoty se postupně porovnávají s hodnotou testovacího výrazu vyraz.Pokud
je nalezena shoda, |
provede se následující blok příkazů .Jednotlivé členy seznamu výrazů se oddělují čárkou a mohou mít následující formu: - samostatný výraz (většinou konstanta), - rozsah hodnot (např. 10 To 20), - výraz kterému předchází klíčové slovo Is ( Is < 10). Příklad:
Private Sub Command1_Click()
Dim
par As Integer, P As Integer,B As Integer
Select Case par
Case Is < 10
P = 5
B = 3
Case 6 To 12
MsgBox ”Parametr má
hodnotu v intrvalu <6,12>”
Case 1,2,3
P = 10
B = 8
Case Else
MsgBox ”Parametr
má špatnou
hodnotu>”
End Select
·
Go To { číslo
|
návěstí}
příkaz slouží ke skoku na jiné místo programu - na řádek označený číslem nebo návěstím. Parametry číslo a návěstí mohou být čtyřicetiznakové literály nebo identifikátory. Návěstí musí byt ukončeno dvojtečkou např NaKonec: Programátor by se měl vystříhat skoků do strukturovaných příkazů přesto, že jeto ve Vb dovoleno.
·
End - ukončuje běh aplikace.Všechny formy jsou
zrušeny všechny otevřené zdroje uzavřeny, všechny pamě´tové zdroje zrušeny
· Stop - pozastaví běh aplikace. Veškeré zdroje jsou zachovány, formy zůstávají na obrazovce. Aktivním se stane okno zdrojového textu aktuálního formy a běh se zastaví na příkazu Stop.Programátor může aktivovat okno Debug a provádět kontrolu proměnných, nebo krokovat podprogram. Pokračování se docílí z menu VB příkazem Continue.
Při výskytu chyby při běhu programu
vede každá chyba , která se vyskytne k ukončení aplikace. VB vypíše
hlášení o této chybě. Pracuje-li program v prostředí Visual Basicu bude
místo zrušení aplikace aktivován režim break.
Pro ošetření chybových stavů se ve Visual Basicu dá využít standardní objekt Err. Aktivuj se příkazem
·
On Errror {GoTo cil | Resume Next | Go to
0}
Příkaz On Error aktivuje programátorovu chybovou rutinu, to znamená, že dovoluje předat řízení na tuto rutinu.
Go To cil Zaktivuje část podprogramu která má chybu vyřešit
Resume {0 | Next | cíl} Příkaz provádí zotavení aplikace po chybě a její převod zpět do normálního režimu Tento návrat může proběhnout trojím způ sobem. Je li volba 0 pak je řízení předáno na řádek kde vznikla chyba, Next předá na bezprostředně následující řádek a cil pře- dá řízení na číslo řádku nebo na navěstí.
GoTo 0 Chybová rutina je deklarována ale program se chová jako by ošetření chybového stavu nebylo implementováno .
Příklad
větve programu nazývané error handler:
....
On Error Go to ErrHandler ‘ tento příkaz se zařadí před místo kde může
vzniknout chy- ba
...
Exit Sub ‘ tento
příkaz tvoří skutečný konec podprogramu nenastane-li chyba
Select case Err.Number ‘část
ve které se ošetří chyba
...
End
Select
Resume Next ‘vrátí
běh programu za řádek za kterým nastala chyba
End Sub
V následující části budou popsány jednotlivé objekty které je možno zařadit do aplikace. Výběr objektů ani metod ani událostí není úplný neboť takový popis výrazně přesahuje rámec publikace. Po seznámení se základními způsoby použití objektů je možno podrobnější a vyčerpávající popis získat v Helpu, který je součástí Visual Basicu.
Jako objekt je okno nebo dialogový box , který je součástí uživatelského rozhraní aplikace
Syntax: Form Forms(index) |
Fomulář - Form umí rozpoznávat události, které jsou vyvolány uživatelem nebo systémem. Formulář rozeznává následující události: |
|
Private
Sub Form_Activate( ) Private
Sub Form_Click( ) Private
Sub Form_DblClick ( ) Private
Sub Form_Deactivate( ) |
Activate Event -aktivuje
formulář při ukázání myši na Formu a při užití Show metody nebo
metody SetFocus Click Event - spustí udílost při ťuknutí myší na Formu DblClick Event - spustí událost při dvojím ťuknutí myší na Formu Deactivate Event spustí událost při deaktivaci Form |
|
|
Private Sub Form_KeyDown(keycode As Integer, shift As
Integer) |
|
|
||||||||||||||||
|
|
KeyDown Event - událost
vyvolaná stisknutím klávesy dolů. |
|
||||||||||||||||
|
Private Sub Form_KeyUp(keycode
As Integer, shift As Integer) |
|
|
||||||||||||||||
|
|
KeyUp Event - událost
vyvolaná uvolněním klávesy. Tabulaka kódů je v příloze1 |
|
||||||||||||||||
Private Sub Form_KeyPress(keyascii
As Integer) |
KeyPress Event - indikuje stisknutí klávesnice |
|
|||||||||||||||||
|
Private Sub Form_Load( ) Private SubMDIForm_Load(
) |
Load Event - tato událost nastan při nahrávání formy do paměti. To umožňuje provést všechny příkazy, které jsou nutné pro použití objektu, jako jsou inicializace, dosazrní do proměnných atd. Příklad kódu události je dále uveden: |
|
||||||||||||||||
|
Private
Sub Form_Load () '
Dosazení do seznamu Combo1.AddItem "Mozart" ' Nastavrní řádku
seznamu Combo1.AddItem
"Beethoven" Combo1.AddItem "Rock 'n
Roll" Combo1.AddItem "Reggae" Combo1.ListIndex = 2 . End Sub |
|
|
||||||||||||||||
|
Private
Sub Form_MouseDown(button As
Integer, shift As Integer, x As Single, y
As Single) Private
Sub MDIForm_MouseDown(button
As Integer, shift As Integer, x As Single,
y As Single) Private
Sub Form_MouseUp(button As
Integer, shift As Integer, x As Single, y
As Single) Private
Sub MDIForm_MouseUp(button As
Integer, shift As Integer, x As Single, y
As Single) |
|
|
||||||||||||||||
|
buton shift x ,y |
MouseDown Event, MouseUp Event - událost která nastane po stisknutí nebo po uvolnění tlačítka myši událost má následující parametry: hodnota 1 znamená levé tlačítko,
hodnota 2 pravé tlačítko a hodnota 4 střední určuje zdali je při stisknutí nebo uvolnění tlačítka myši stisknuto tlačítko SHIFT hodnota 1, CTRL hodnota2, ALT hodnota 4. Specifikují
hodnoty souřadnic kurzoru. Měřítko souřadnic je možno nastavit ve
vlastnostech (Propertis) formy. |
|
||||||||||||||||
|
Private
Sub Form_MouseMove(button As
Integer, shift As Integer, x As Single, y As Single) Private
Sub MDIForm_MouseMove(button
As Integer, shift As Integer, x As Single, y As
Single) |
|
|||||||||||||||||
|
|
MouseMove Event - událost indikuje
pohyb myši (parametry jako v předchozím případě |
|
||||||||||||||||
|
Private
Sub Form_Paint() |
Paint Event - událost umožňuje
překreslení obrázků při užití grafických metod ve formě. V následujícím
příkladu je užita grafická metoda Line pro nakresleni čtyřúhelníka. |
|
||||||||||||||||
|
Private
Sub Form_Paint () Dim HalfX, HalfY ' Declare variables. HalfX = ScaleLeft + ScaleWidth / 2
'Nataví polovinu šířky formy HalfY = ScaleTop + ScaleHeight / 2
' Set to one-half of height. 'Kreslení čtyřuhelníka. Line (ScaleLeft,
HalfY) - (HalfX, ScaleTop) Line -(ScaleWidth +
ScaleLeft, HalfY) Line -(HalfX, ScaleHeight +
ScaleTop) Line -(ScaleLeft, HalfY) End
Sub Private
Sub Form_Resize Refresh ‘Překreslení čtyřúhelníka př změně rozměrů formy End
Sub |
Čtyřúhelník
se překreslí vždy při změně rozměrů okna. |
|
||||||||||||||||
|
Private
Sub Form_Resize |
Resize Events - událost
vyvolaná změnou rozměrů okna |
|
||||||||||||||||
|
Private
Sub Form_Unload(cancel
As Integer) |
Unload Even - je spuštěna při
zrušení formy |
|
||||||||||||||||
Poznámka : pokud budou u
dalších objektů uvedeny obdobné události nebude již uveden podrobný popis
události jestliže se nebude lišit od
výše uvedeného popisu.
Nečastěji
užívané metody formy - metody objektu Form
Poznámka : Obecně je možno říci, že metody se používají k implementaci chování objektu. Metody se implementují pomocí podprogramů a funkcí., které nejsou vlastnostmi.
· Metoda Show - zobrzí formulář form nebo MIDIForm
object.Show
style
object může být Form nebi MidIForm např:: Form1.Show
style může mít hodnotu 0 = modeless (default ) nebo 1= modal
Poznámka : Před tím než použijeme metodu Show musíme použít příkaz Load pomocí kterého načteme objekt do paměti.:
Syntax:
Load object
Příklad programu, který zjišťuje byl - li formulář Form1 zaveden do paměti:
Private Sub Form_Click ()
Dim
Answer, Msg ' Deklarace
proměnných.
Unload
Form1 'Zrušení
formy Form1 v paměti
Msg =
"Formulář 1 byl zrušen. Pokud si ho přejete znovu zavést a zobrazit
stiskněte Ano, pokud si nepřejete ho zobrazit stiskněte
Ne "
Answer
= MsgBox(Msg,4) ' Dá
uživateli zprávu.
If
Answer = 6 then '
Vyhodnotí odpověď
Show ' Je
- li odpověď Ano, ukáže formulář Form1.
Else
Load
Form1 '
Pří odpovědi Ne zavede Form1 a neukáže ho.
Msg
= "Form1 je nyní zaveden
zvolte si OK a zobrzí se"
MsgBox
Msg '
Zobrzí zprávu.
Show ' Show form.
End If
End Sub
·
Metoda Hide
- skryje formulář a nechá ho uložený v paměti -
vlastnost Visible se nastaví na False
Syntax
object.Hide
Například: Form1.Hide
·
Metoda Cls - vymaže kresby na formuláři
, text zůstane zachován.
Syntax
object.Cls Syntax
object.Cls Syntax Například: Form1.Cls
· Metoda
Move - posune objekt a změní jeho rozměry
Syntax
object.Move left, top, width, height Například:
Form1.Move 180,250, 500,400
· Metoda Print - vytiskne výstupní seznam (outputlist) na deklarovaý ojekt viz příklad
|
Syntax
object.Print outputlist Form1.Print ”Ahoj” ; ” ”; ”Jirko”
·
Mtoda PrintForm -
vyšle bitovou mapu Formy na aktuální tiskárnu
Syntax
object.PrintForm Například: Form1.PrintForm
Přehled
nejčastěji používaných vlastností (Propertis).
Jak bylo uvedeno výše v kapitole Formy každému objektu je možno ve režimu design přednastavit vlastnosti v tabulce Propertis (obr. 10). Pokud projektant nezmění tyto vlastnosti v režimu run pomocí příkazů zachovávají si objekty nastavené vlastnosti po celo dobu běhu aplikace.
V další části budou uvedeny ty vlastnosti formy, které bývají nejčastěji měněny při běhu aplikace jsou to:
object.Visible [= boolean Například : a. Form1.Vsible = False b. Form1.Vsible = True |
Visible Property - nastavuje vlastnost viditelnost formy to znamená, je-li zapsáno přiřazení ad. a. (False) je formulář neviditelný, i když je zaveden v paměti, v opačném případě ad.b. (True) je formulář viditelný. |
||||
object.Caption [= string] Například : Form1.Caption = ”Otázky” Form2.Caption = ”Odpovědi” |
Caption Property = tato vlastnost je přednastavena na Form. Je to vlasně hlavička formy. Hlavičku je možno měnit v režimu design i run.Příklad uvádí změny v režimu run:
|
||||
object.AutoRedraw [= boolean] Například : Form1. AutoRedraw = False Form1. AutoRedraw = True |
AutoRedraw
Property - automatické překreslování obsahu formy. Je li tato vlastnost
nastavena na false pak,
je-li formulář při běhu aplikace překryt jiným oknem obsah formy se znovu
nevykreslí . |
||||
object.BackColor [= color] object.ForeColor [= color] Například : Private
Sub Form_DblClick() Form1.BackColor
= RGB(50, 100, 25) Form1.ForeColor
= QBColor(10) Form1.Print
"Ahoj" End Sub |
BackColor,
ForeColor Properties nastaví barvu pozadí a popředí (na př. písma nebo
čar) na formuáři . Barva se nastavuje pomocí funkce RGB(červená, zelená,
modrá), proměné červená, zelená, modrá jsou čísla v rozsahu 0
až 255 určující zastoupení barvy. Barvu lze nastavit také pomocí funkce QBColor
(CisloBarvy), CisloBarvy je v rozsahu 0 až 15. |
||||
object.KeyPreview [=
boolean] Private Sub Form_Load() KeyPreview = True End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As
Integer) Select Case KeyCode Case vbKeyF1: MsgBox "F1
......." Case vbKeyF2: MsgBox "F2 ......." End Select End Sub |
KeyPreview
Property - vypíná a zapíná Falese/True odezvu formy na stisknutí na příklad funkčních kláves.
Je-li tato vlastnost nastavena na True pak formulář reaguje před tím,
než zareaguje aktivní objekt Control formy. Nový objekt má vlastnost
nastavenu (default) na False. |
||||
object.WindowState
[= value] |
WindowState Property -
nastaví okno formy 0 (Default) Normal - normální nastavení 1 Minimized - minimalizované do icony 2 Maximized - celá obrazovka |
||||
Nejčastěji využívané události jsou uvedeny v následující tabulce podrobný popis i s příklady je uveden v nápovědě (Help) Visual Basicu
Change Event |
- nastává pří změně obsahu objektů Control - ComboBox ,DBCombo,DBGrid ,DirListBox , DriveListBox, HScrollBar, VScrollBar, Label , PictureBox , TextBox |
|
Click Event |
- nastává při ťuknutí myší na
objekty Control - CheckBox ComboBox, CommandButton ,
DBCombo, DBGrid, DBList, DirListBox Control, FileListBox
Control, Form Object, Grid, Frame, Image, Label, ListBox, Menu Object, OLE , OptionButton , PictureBox ,TextBox |
|
DblClick Event |
- nastává při dvojím ťuknutí myší na objekty Control -CheckBox, ComboBox, CommandButton , DBCombo, DBGrid, DBList, DirListBox, FileListBox, Grid, Frame, Image, Label, ListBox, Menu Object, OLE , OptionButton , PictureBox ,TextBox |
|
DragDrop Event Například: Private Sub Text1_DragDrop (Source As Control, X
As Single, Y As Single) If TypeOf Source Is TextBox Then Text1.Text = Source.Text End If End Sub |
nastává při uchopení a tažení následujících objektů Control CheckBox, ComboBox, CommandButton , DBCombo, DBGrid, DBList, DirListBox, FileListBox, DirListBox, DriveListBox , FileListBox , Frame, Grid, HScrollBar, VScrollBar , Label , ListBox , OptionButton, PictureBox ,TextBox |
|
GotFocus Event |
- nastává při ukázání myší na objekt, nebo stisknutím tlačítka TAB Control - CheckBox. ComboBox, CommandButton, DBCombo, DBList , DirListBox, DriveListBox, FileListBox , Grid, HScrollBar, VScrollBar , ListBox, OLE Container ,OptionButton, PictureBox ,TextBox |
|
KeyDown, KeyUp Events |
- nastává při stisknutí/uvolnění tlačítka klávesnice je li aktivní objekt Control - CheckBox ComboBox, CommandButton , DBCombo, DBGrid, DBList, DirListBox Control, FileListBox Control, Form Object, Grid, Frame, Image, Label, ListBox, Menu Object, OLE , OptionButton , PictureBox ,TextBox |
|
MouseDown, MouseUpEvents |
- nastává při stisknutí/uvolnění tlačítka myši nastavené na objekt Control - CheckBox ComboBox, CommandButton , DBCombo, DBGrid, DBList, DirListBox Control, FileListBox Control, Form Object, Grid, Frame, Image, Label, ListBox, Menu Object, OLE , OptionButton , PictureBox ,TextBox |
|
MouseMove Event |
nastává při pohybu kurzoru myši a působí na objekty Control - CheckBox ComboBox, CommandButton , DBCombo, DBGrid, DBList, DirListBox Control, FileListBox Control, Form Object, Grid, Frame, Image, Label, ListBox, Menu Object, OLE , OptionButton , PictureBox ,TextBox |
|
Textové pole - TextBox
Textové pole zobrazuje text (stejně
jako popiska Lable) . Pomocí textového pole je možno text zadávat ,
měnit i zobrazovat. Text může mít velikost max. 64 KB. V textovém poli
nemůže být použita metoda Print. Textové pole se vytvoří pomocí tlačítka
v okně nástrojů. Po vložení do formy je
možno upravit jeho velikost .
Textové pole reaguje na následující
události - Change , Click, DblClick, DragDrop,DragOver, GotFocus , KeyDown,
KeyPress, KeyUp, LinkClose, LinkError, LinkNotify, LostFocus, MouseDown,
MouseMove, MouseUp..
Metody objektu textové pole Drag ,
LinkExecute, LinkPoke, LinkRequest, Move, Refresh, SetFocus,
ShowWhatsThis, Zorder.
Podrobný popis metod i událostí je uveden v Pomoci (Help) vývojového prostředí Visual Basicu.
obr.26b. |
Vlastnosti objektu text box jsou zobrazeny na obrázku 26a. a 26b.. Jednotlivé vlastnosti
obr.26a. |
jsou ukázány v okně Propertis ve kterém je možno nastavovat vlastnosti objektu v režimu desig staticky. V režimu run je možno vlastnosti nastavovat dynamicky na přiklad v podprogramech vyvolaných nějakou událostí .
Na příklad v režinu design nastavíme vlastnost Visible na False. Po spuštění aplikace, pokud neprovedeme nějakým způsobem nové nastavení této vlastnosti, bude objekt TextBox Text1 neviditelný. Teprve ťuknutím na tlačítko Vstup dále uvedená procedura změní vlastnost a objekt Text1 bude viditelný.
Private Sub Vstup_Click()
Text1.Visible
= True
End
Sub
Obrázek - Picture Box
Objekt Obrázek (Picture Box) umožňuje zobrazit obrázek nebo kresby ve formátu .BMP (bitové mapy), .ICO (ikony) a WMF (Windows - Metafile) . Program zobrazí tu část obrázku, která se vejde do výřezu nastaveného v režimu designe. Pokud nastavíme vlastnost AutoSize na True zobrazí se celý obrázek. Velikost výřezu se dynamicky přizpůsobí v režimu Run.
|
V obrázku může být zobrazován i
text. Obrázek se vytváří kliknutím na tlačítko
v sadě nástrojů (Toolbox).
Obrázek (PictureBox) reaguje na
následující událost: Change , Click, DblClick, DragDrop,DragOver, GotFocus ,
KeyDown, KeyPress, KeyUp, LinkClose, LinkError, LinkNotify, LostFocus,
MouseDown, MouseMove, MouseUp,Paint, Resize.
Metody objektu PictureBox: Circle,
Cls,Drag, Line, LinkExecute, LinkPoke,
LinkRequest, LinkSend, Move,
PaintPicture, Point, Print,Pset, Refresh, Scale, ScaleX, ScaleY, SetFocus, ShowWhatsThis,
TextHeight, TextWidth, Zorder.
obr. 27a. |
obr.27.b |
Vlastnosti objektu text box jsou
zobrazeny na obrázku 27a. a 28b.. Jednotlivé vlastnosti
jsou ukázány v okně Propertis ve kterém je možno nastavovat vlastnosti objektu v režimu design staticky. V režimu run je možno vlastnosti nastavovat dynamicky na přiklad v podprogramech vyvolaných nějakou událostí . Obrázek ve formě bitové mapy je možno načíst do
obr.28 |
formy v režimu design v okně
Propertis v řádku Picture po klepnutí na ComboBox se
objeví okno Load Picrutre (obr.28), které umožní vybrat obrázek nebo
iconu. Dynamicky v
režimu run je možno načíst obrázek na příklad pomocí následujícího kódu:
Private
Sub Form_Load()
Picture1.Picture
= LoadPicture("c:\windows\plocha\ozubená kola")
End
Sub
Při dynamickém načítaní obrázku je
lepší nastavit vlastnost AutoSize =
True . Další důležitou vlastností je nastavení automatického překreslování
okna, pokud si přejeme, aby se obrázek při překrytí a znovu objevení okna
překreslil. AutoRedraw = True .Pokud je tato vlastnost aktivní je
obrázek uložen v operační paměti a není nutno ho vždy znovu načítat.
Ovládací prvky Popisek (Lable), Zobrazení (Image), Čára (Line) a Obrzec (Shape) mohou částečně nahradit TextBox a PictureBox .
Popisky slouží k zobrzení textu nikoliv jako vstup. Většinou se používají pro popis. Do formy se vkládají pomocí tlačítka v okně nástrojů (Toolbox) . Vlastnosti jsou uvedeny na obr.29 v okně Proprtis pro popisku. Události popisky:
Change , Click, DblClick, DragDrop,DragOver,,
LinkClose, LinkError, LinkNotify,linkOpen, MouseDown, MouseMove, MouseUp.
Metody objektu Drag, Line, LinkExecute, LinkPoke,
LinkRequest, Move, Refresh,, Zorder.
Zobrzení (Image) vytváří
se pomocí tlačítka ze sady nástrojů. Vlastnosti zobrazení jsou na obr.30. Jedna
z nejzajimavějších vlastností je vlastnost Stretch umožńující
přispůsobit automaticky velikost obrázku velikosti ovládacího prvku.
Image1.Stretch = True
Události -Click, DblClick,
DragDrop,DragOver,, MouseDown, MouseMove, MouseUp.
obr.30. |
obr. 29. |
Metody objektu -Drag, Move, Refresh,, Zorder.
Ovládací prvek Čára (Line) Slouží k zjednodušenému kreslení rovných čar mezi dvěma body.Vytvoří se pomocí tlačítka ze sady nástrojů. Vlastnosti jsou na obr.31.
obr.31. obr.31. |
obr.32. |
Metody
- Refresh, ZOrder.
Obrazec (Shape) slouží ke kreslení obdélníků, kruhů a elips.Vztváří se pmocí tlačítka . Vlastnosti jsou uvedeny na obr. 32. Methody - Refresh, ZOrder. Druh obrazce je určen vlastností Shape . Hodnota představuje jeden z možných obrazců:
·
0 : obdélník
·
1: čtverec
·
2: ovál
·
3: kruh
·
4: zaoblený obdélník5: zaoblený čtverec
Ovládací prvek Příkazové tlačítko (CommandButton). Pomocí tlačítka můžeme vyvolat událost klikneme - li na něho myší, nebo vybereme-li ho pomocí klávesy TAB z klávesnice a stiskneme-li ENTER. Vlastnosti příkazového tlačítka jsou uvedeny na obr. 33.
Události - Change , Click, DblClick, DragDrop,DragOver,
GotFocus , KeyDown, KeyPress, KeyUp, LinkClose, LinkError, LinkNotify, LostFocus,
MouseDown, MouseMove, MouseUp,Paint, Resize.
Metody objektu PictureBox: Circle, Cls,Drag, Line, LinkExecute, LinkPoke, LinkRequest,
LinkSend, Move, PaintPicture, Point,
Print,Pset, Refresh, Scale, ScaleX, ScaleY, SetFocus, ShowWhatsThis, TextHeight,
TextWidth, Zorder.
Okno pro odlaďování aplikace (Immediate, Locals
and Watch Window) umožňuje při odlaďování aplikace bezpro-středné
(immediate) zkoušet příkazy VB a sledovat (watch) hodnoty proměnných.
|