Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

BiologieBudovaChemieEkologieEkonomieElektřinaFinanceFyzikální
GramatikaHistorieHudbaJídloKnihyKomunikaceKosmetikaLékařství
LiteraturaManagementMarketingMatematikaObchodPočítačůPolitikaPrávo
PsychologieRůznéReceptySociologieSportSprávaTechnikaúčetní
VzděláníZemědělstvíZeměpisžurnalistika

VisualBasic - Úvod do Visual Basic

počítačů



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

TERMENI importanti pentru acest document

:

VisualBasic

Historie programovacích jazyků



Úvod do Visual Basic

Základní pojmy

Vývojové prostředí VB

Project Explorer

ToolBox

Kde hledat informace o objektech

Proměnné

Řídící struktury

Algoritmizace základních úloh

Procedury a funkce

Zásady psaní programového kódu

Vlastnosti objektů

Výrazy

Funkce VB

Matematické funkce

Funkce pro vstup a výstup údajů :

Funkce datumu a času

Funkce pro práci s řetězci

Kreslení

Události ve VB

Vlastnosti projektu

Formátování čísel, řetězců, času

Menu Editor (Vytváření menu)

ToolBar (Nástrojová lišta)

Práce se soubory

Přístup k datům v databázích

Chyby a ladění programu

Kompilační a logické chyby

Odchytávání chyb za běhu programu

Objekty VB

Form

Command Button (Příkazové tlačítko)

Text Box (Pole textu)

Label (Nepřístupný text)

Check Box (Možnost)

Option Button (Volba mezi)

Frame (Rámeček)

Picture Box (Obrázek)

Image (Obrazové tlačítko)

Line (Čára)

Shape (Tvar)

List Box

Combo Box

Timer (Časovač)

Horizontal Scroll Bar, Vertical Scoll Bar (Posuvníky)

Drive List Box (Seznam jednotek)

Directory List Box (Seznam adresářů)

File List Box (Seznam souborů)

Common Dialog (Standardní dialog)

Dialogy Open a Save As

Tvorba třídy (class modul)

MapObjects

Doporučená literatura

Historie programovacích jazyků

Každý procesor má svou sadu programovacích instrukcí, které lze použít pro psaní programů. Těmto jazykům se říká strojový jazyk - assembler. Programování v něm je pracné, proto byly vytvořeny vyšší programovací jazyky. Prvním z nich byl jazyk FORTRAN (z Formula Translation) vyvinuty v USA v 60. letech 20.století. Dalším velice oblíbeným a rozšířeným vyšším programovacím jazykem byl PASCAL. Tento jazyk byl určen pro výuku programování. Vyznačuje se tzv. strukturovaným programováním. Dalšími programovacím jazykem, který se používá je jazyk C a jeho novější varianty C+, C++, C#. Firma Microsoft vyvinula svůj programovací jazyk Visual Basic, který bude popisován dále.

Úvod do Visual Basic

Ještě dnes si mnoho lidí spojuje Basic s Visual Basicem (dále jen VB). Je pravdou, že z něj VB původně vycházel. Dnes už mnoho společného nemají. VB je plnohodnotným programovacím jazykem. VB umožňuje rychle vytvářet a implementovat distribuované aplikace a programovat webové aplikace s využitím známých nástrojů a funkcí VB.

VB obsahuje nástroje a objekty pro používání databází (DAO, ADO, ODBC, OLEDB atd.). Součástí těchto nástrojů je také plnohodnotný jazyk SQL. VB také podporuje mechanizmy OLE, neboli OLE Automation (Object Linking and Embedding), pomocí nichž je možno používat objekty jiných aplikací (např. dokument Wordu), dále také mechanizmus DDE (Dynamic Data Exchange), který umožňuje výměnu dat mezi aplikacemi. Dále VB obsahuje mnoho objektů pro různé akce, např. komunikace v síti, s tiskárnami, grafické a multimediální prvky atd.

Dnes lze VB verze 6 koupit ve třech verzích, Learning, Professional a Enterprise. Verze Learning, jak napovídá název, je určena spíše pro učení se jazyku. Ze všech třech je nejlevnější. Navíc oproti dvěma dalším verzím má na CD interaktivní učebnici. Pokud však mají být programy prodávány, či jinak distribuovány, je nezbytné zvolit verzi Professional nebo Enterprise. Obě tyto verze umožňují vše, co je uvedeno výše, obsahují integrované nástroje pro přístup k databázím atd. Verze Enterprise obsahuje navíc různé nástroje pro vyvíjení aplikací client-server, pro programátorské týmy apod. Cenově se rovná asi dvojnásobku verze Professional.

Slovo Visual v názvu znamená vytváření programu vizuálně, tedy hlavně za pomocí myši a vyplňování různých dialogů. Není to až tak úplně pravda, za pomocí myši a dialogů vytvoříte grafické rozhranní aplikace, a maximálně nějaké základní úkoly. Pokud však chcete vytvořit trochu složitější aplikaci, bez psaní kódu se neobejdete.

Základní pojmy

Objekt, vlastnost, metoda, událost

Jazyk VB pracuje s objekty.

Objekt je určitá simulace (malé) části reálného nebo abstraktního světa, která je dána:

  • vlastnostmi (properties)
  • metodami  (methods)
  • událostmi (events).

Příkladem reálného objektu může být například člověk. Jeho vlastnostmi jsou: věk, barva očí, výška, … Kromě vlastností má člověk i určité „schopnosti“ nebo „způsoby chování“, například umí chodit. Z hlediska programátora mohou být vlastnosti objektu chápány jako specifické proměnné s daným typem objektu. Metody jsou pak podprogramy pracující nad těmito (ale i jinými) proměnnými.

Dalším příkladem objektu může být obyčejný nafukovací balónek. Ten má vlastnosti barvu, rozměr, stav nafouknutý (ano/ne), vypuštěný, stáří (což je neviditelná vlastnost). Metody, které můžeme na balónku uplatnit jsou na nafukování, vyfukování. Událost, která může nastat je propíchnutí špendlíkem. Reakcí na tuto událost je splasknutí a protržení balónku a rána. Je to reakce objektu na vnější událost.

Třída objektu

Třída objektu představuje obecnou definici objektu – jeho vlastností a metod a událostí. To znamená, že je například stanoveno, že auto má barvu (obecně) spolu s uvedením všech možných barev, které auto může mít. Třída objektu je vzorem (šablonou) pro vytváření instancí objektu.

Třídou objektu jsou okno operačního systému Windows.

Instance objektu

Instance objektu jedná se o konkrétní objekt - výskyt objektu. Tedy auto se státní poznávací značkou OVD 45 21, číslem motoru 445821E, … Vlastnosti instance objektu už tedy nabývají konkrétních hodnot a objekt je jednoznačně identifikovatelný. Taktéž dialogové okno Windows, které v kterém je dotaz na Restart, vypnutí počítače, má své rozměry, barvu, umístění na obrazovce, jméno.

Metoda

Objekty mají definované metody. Metody jsou spojovány s chováním objektu. Dynamická stránka objektu je vyjádřena jako množina operací, které objekt může provádět za určitých podmínek. Metody objektu jsou procedury nebo funkce, které vykonávají určitou činnost nad vnitřní pamětí objektu. Nad objektem lze vykonat jen metody, které má definované.

Událost

Běh programu, či jeho části je aktivován tzv. událostmi. Událost nastane po nějaké specifické akci uživatele nebo systému. Např. metoda zobrazení formuláře je reakcí na určitý podnět uživatele (kliknutí na tlačítko „Otevři“, nebo stisknutí nějaké klávesy na klávesnici – událost na tlačítku, nebo na klávesnici) Běžící program čeká na událost. Poté co událost nastane, spustí se kód, který je zapsán do procedury (podprogramu) svázané s touto událostí.

Principy a výhody objektově orientovaného programování (dále OOP)

  1. Opakovatelnost použití objektu – je-li definována třída objektu, lze snadno vytvořit „nekonečně mnoho“ instancí třídy. Např. je-li obecně nadefinováno tlačítko, které má určitý vzhled a chování, je možné na základě této definice vytvořit více tlačítek (tlačítko OK, Cancel, Retry, )
  1. Identita objektů – každý objekt musí být jednoznačně identifikovatelný.
  1. Dědičnost (inheritance)– jedna třída objektu může být odvozena od jiné – nadřazené třídy, dědí poté vlastnosti a metody nadřazené třídy. Vznikají určité hierarchie tříd objektů. Například je-li definována třída „Dopravní prostředek“ s vlastnostmi „počet přepravovaných osob“ a „maximální rychlost“, mohou být od ní odvozeny nové třídy např. „letadlo“, „loď“, „automobil“ atd., které daní vlastnosti dědí. (ve VB je dědičnost realizována poměrně složitými postupy)
  1. Rozšiřitelnost extensibility) – definici tříd lze dále doplňovat a upravovat. Nová třída automobil by pak mohla mít rozšířena o vlastnosti jako: „počet kol“, „počet válců“ atd.
  1. Zapouzdření (encapsulation)– objekt by měl být samostatnou jednotkou a měl by mít jasné hranice. Zapouzdřujeme k objektu jeho  vlastnosti, metody a můžeme k tomuto objektu přistoupit jej přes tyto metody. Tímto způsobem vlastně objekt chráníme (zapouzdříme), aby jej nebylo možné ovládat jinak, než přes jeho vlastní metody.
  1. Polymorfismus – Nová třída má stejné metody (jejich názvy) jako u nadřazené třídy podle principu dědičnosti. Avšak metoda stejného jména může mít jinou funkcionalitu. Platnost lokální metody má vyšší prioritu než zděděna metoda.

Visual Basic a objekty

Ve VB jsou předdefinované objekty  nebo objekty nově definované uživatelem.

Všechny ovládací prvky jsou předefinované objekty.

Příklady objektů : formuláře (form), textová pole (Text Box)(pro zadávání i zobrazování), příkazová tlačítka (CommandButton), popisky (Label), menu, atd.

Pomocí předdefinovaných objektů komponent lze vytvořit program snadněji a rychleji. Jedním z nejčastěji používaných objektů v programech je tlačítko. Jestliže tedy máme k dispozici definici třídy tlačítko, které je nadefinováno jako obdélník s určitými rozměry, vzhledem, barvou, popisem atd., není třeba při každém použití tlačítka v programu znovu pracně definovat tyto vlastnosti. Navíc jsou tyto kódy již odladěny, takže nevznikají další chyby. Při použití programové komponenty uživatel nepracuje přímo s kódem, ale přes komunikační prostření programovacího jazyka přistupuje přímo k vlastnostem, metodám a událostem dané třídy. Definice třídy by měla být univerzální pro širší použití, ale lze nalézt i zcela úzce zaměřené komponenty. Korektní použití programové komponenty zajišťuje přesná dokumentace.

Představíme-li si formulář jako jedno z oken ve Windows, potom jako vlastnost můžeme uvést barvu, titulek, velikost okna, atd. … a metodu například zobrazení formuláře na obrazovce počítače.

Objekty mají také obvykle nějaké vztahy s okolím. Například okno jež je součástí nějaké aplikace ve Windows lze zavřít kliknutím na křížek v pravém rohu tohoto okna, ale také uzavřením celé aplikace, protože je vázáno na běh aplikace (je její součástí).

ALGORITMIZACE A ALGORITMUS

Problémem (úlohou) se nazývá stav, ve kterém vznikla potřeba doplnit existující systém poznatků z jisté oblasti (tzv. problémové prostředí) o nový poznatek – řešení problému.

Příklady:

Problémové prostředí

Problém

Matematické výpočty

Výběr maximálního ze tří čísel,

Řešení soustavy lineárních rovnic

Příprava pokrmů

Uvaření čaje, upečení bábovky, aj.

Doprava

Úspěšný přechod vozovky

Postup, kterým se z původního systému poznatků dosáhne řešení problému, se nazývá postup řešení problému.

Znalost postupu řešení problému umožňuje vyřešit problém vždy, když se znovu objeví.

Postup řešení uvedeného typu se nazývá algoritmus.

Definice: Algoritmus je soubor přesně definovaných pravidel určující pořadí vykonávání konečného počtu elementárních operací, který zabezpečuje řešení všech úloh určitého typu.

Algoritmus lze charakterizovat těmito základními vlastnostmi:

Elementárnost skládá se z konečného počtu jednoduchých, snadno realizovatelných činností (kroků)

Determinovanost (určenost) – po skončení realizace každého kroku lze určit, zda realizace algoritmu skončila a jestliže neskončila, tak který krok je třeba vykonat jako následující

Konečnost – každý krok algoritmu se vykoná pouze konečný počet kraát. Činnost popsaná algoritmem tedy v konečném čase skončí.

Rezultativnost – úlohou algoritmu je vést postup řešení od daných (vstupních) údajů k výsledku.

Hromadnost algoritmus je určen peo řešení velké skupiny problémů stejného typu.

Algoritmus musí být zapsán ve tvaru srozumitelnému procesoru. Stanovený způsob zápisu algoritmů se nazývá algoritmický jazyk. Věty algoritmického jazyka přikazují změnit stav procesu tak, aby postoupil blíže k řešení. Proto se věty nazývají příkazy.

Jestliže je nalezen nějaký postup řešení – algoritmus, je obvyklé, že existují i jiné, z určitého hlediska lepší algoritmy (jednodušší, rychlejší atd.). V krajním případě se může ukázat, že řešení problému vůbec neexistuje.

Vývojový diagram

Vývojový diagram je grafický způsob zápisu algoritmů, v němž jsou k zápisu jednotlivých kroků použity značky, které se spojují vodorovnými nebo svislými spojnicemi. Do značek se slovně vpisují operace (skupiny operací) nebo symboly, blíže určující význam značek.

Vývojové prostředí VB


Lišta nástrojů – seskupení rozbalovacích nabídek (menu) a tlačítek, pomocí kterých je projekt ovládán.

ToolBox – nabídka ovládacích nástrojů z nichž je program sestavován.

Okno Projektu – uvnitř se zobrazují formuláře, které projekt obsahuje. Okno formuláře představuje grafickou podobu (reprezentaci) dialogového okna (formuláře) vytvářeného programu.

Form Layout – informace o tom, kde se bude právě aktivní formulář nacházet na obrazovce při běhu programu.

Okno Properties – přehled vlastností a jejich počátečního nastavení k právě aktivnímu ovládacímu prvku.

Project Explorer – přehled všech částí (formulářů) ze kterých daný projekt skládá.
Okno Immediate – okno sloužící k testování částí programového kódu.

Okno Watches – okno pro sledování hodnot proměnných během ladění programu.

Pokud je některé z výše uvedených oken zavřeno, lze jej znovu otevřít pomocí nabídky v rozbalovacím menu View.

V rozbalovací nabídce File jsou umístěny nabídky pro vytvoření

  • nového projektu (New Project),
  • otevření již existujícího projektu (Open Project),
  • otevření dalšího projektu (Add Project),
  • odstranění projektu (Remove Project),
  • uložení projektu (Save Project, Save Project As),
  • uložení právě aktivního formuláře (Save Form a Save Form As),
  • tisk formuláře (Print),
  • vytvoření samospustitelného souboru *.exe (Make),
  • ukončení běhu VB (Exit) atd.

Project Explorer

V prohlížeči (Exploreru) projektu jsou seskupeny všechny části projektu. Mohou zde být umístěny tyto části projektu:

  1. Formuláře (Forms) – formulář je objekt, okno, které vytváří součást uživatelského rozhranní vytvářené aplikace. Může obsahovat (a také většinou obsahuje) zdrojový kód. Na formulář můžete umísťovat libovolné ovládací prvky (tlačítka, obrázky atd., dále menu, titulek, minimalizační, maximalizační a uzavírací tlačítka).

MDIForm je tzv. rodičovský formulář. To znamená, že může sdružovat (tvořit pozadí pro) několik dceřinných formulářů.

Grafické okno formuláře  Zápis programového kódu

  1. Moduly (Modules modul je pouze 'schránka', která obsahuje procedury, funkce a deklarace, tzn. na rozdíl od formuláře má pouze tu část, která obsahuje programový kód, neosahuje žádnou grafickou část, která by se zobrazovala při běhu programu. (slouží především pro definování globálních proměnných, uživatelských datových typů, procedur a funkcí – viz později)
  1. Třídy (Class Modules) - předloha pro vytváření instancí objektů - jedná se o vzor pro vytváření konkrétních objektů.
  1. ActiveX prvek (ActiveX Control) - objekt, který může být součástí aplikace nebo může být samostatnou aplikací (v tomto případě má příponu OCX). ActiveX prvky se zobrazují v okně Toolbar.

Projekt - soubor formulářů (oken), modulů, tříd atd. (viz dále), jednoduše soubor různých částí, ze kterých se skládá celá aplikace.

Z čeho se skládá projekt:

Při ukládání projektu na disk se ukládají jednotlivé části projektu do samostatných souborů. Jedná se o soubory s následujícími příponami:

.VBP – obsahuje seznam všech částí projektu, jako např. formulářů, objektů, a dále nastavení vlastností, např. verze, název atd.

FRM – modul formuláře – viditelná část

.FRX – je automaticky vytvořen, pokud formulář obsahuje ikony a obrázky

.BAS – standardní modul (basický), jen zdrojový kód formuláře

.CLS – modul třídy

.EXE – samospustitelný soubor

.DOB, .CTL, .PAG, … - pro ActiveX

ToolBox

Obsahuje základní nabídku ovládacích prvků. Tyto lze přidávat či odebírat pomocí pravého tlačítka na myši (příp. klávesové zkratky CTRL-T, nebo v rozbalovací nabídce Project/Components).

Label (popisek, návěští) – pro texty, které uživatel za běhu programu nemění.

Text box (textové pole) – pro texty, které uživatel vkládá za běhu programu

Command button (tlačítko)

Line (čára) – pro grafické oddělení jednotlivých částí formuláře

Shape (tvar) – pro kreslení geometrických tvarů na formulář

Image (obrazové tlačítko) – k zobrazení grafiky, ale může sloužit i jako tlačítko

Picture box (obrázek) – k zobrazení grafiky

Frame (rámeček) – pro grafické oddělení (seskupení) tématicky shodně zaměřených prvků na formuláři.

Option button (volba mezi) - výběr z možností

Check box (zaškrkávací políčko)

File list box (seznam souborů)

Directory list box (seznam adresářů)

Drive list box (seznam disků)

List box (seznam)

Combo box (rozbalovací seznam)

Horizontal scroll bar (vodorovný posuvník)

Vertical scroll bar (svislý posuvník)

Timer (časovač)

Data (data)

OLE container (OLE kontejner)

Ovládací prvky se umisťují na formulář (grafickou část), tak že se příslušný ovládací prvek označí v ToolBoxu a kurzorem se poté označí jeho umístění na formuláři, nebo dvojtým poklikáním na daný ovladač v ToolBoxu.

- toto pole je v ToolBoxu automaticky označováno po přenesení ovládacího prvku na formulář. Je-li vybráno, je u aktivního ovládacího prvku na formuláři (u toho, v jehož obrys je vyznačen čtverečky) možné měnit umístění a velikost tohoto prvku pomocí myši (např. potáhnutím rohového čtverečku).

Kde hledat informace o objektech

Object Browser – zobrazuje všechny údaje o objektu (vlastnosti, metody, události, konstanty) s popisem, ale jen stručně a bez souvislostí a hraničních podmínek.

Okno Properties – ukazuje vlastnosti a jejich možné hodnoty s popisem. Neukazuje metody a události a z vlastností jen ty, které jsou při návrhu dostupné.

Help – podrobný popis včetně poznámek, souvislostí a příkladů (mnohdy obtížné hledání)

Další (Internet – msdn.microfost.com)

Proměnné

Proměnné slouží k dočasnému uchování hodnot během vykonávání programového kódu.

Jsou definovány názvem, datovým typem, rozsahem platnostidobou platnosti.

Pravidla pro názvy proměnných a konstant:

nepoužívat klíčová slova, nesmí obsahovat: mezeru, čárku, &, #, @, $, %, !

musí začínat písmenem

bez diakritiky

jména proměnných, konstant a podprogramů musí být kratší než 255 znaků

jména formulářů, ovladačů, tříd a modulů musí být kratší než 40 znaků – bez diakritiky, začínají písmenem, neklíčová slova

Datové typy

Datový typ

T

Rozsah hodnot

Paměť

v bytech

Byte

Boolean

True, False

Integer

-32 768 až 32 767

Long

&

-2 147 483 648 až 2 147 483 647

Single

-3,402 823E+38 až –1,401 298E-45 1,401 298E-45 až 3,402 823E+38

Double

-1,797 693 134 862 32E+308 až –4, 940 656 458 412 47E-324;

4,94065645841247E-324 až 1,79769313486232E308

Currency

-922 337 203 685 477,5808 až 922 337 203 685 477,5807

Decimal

96bitová čísla bez znaménka 

Date

1.1.100 až 31.12.9999

Object

Odkaz na jakýkoliv objekt v aplikaci nebo jiných aplikacích

String

0 až 2 miliardy znaků

10+délka řetězce

String*délka

1 až 65 400 znaků

délka řetězce

Variant

číselná proměnná až do rozsahu Double

String proměnné délky

22+délka řetězce

Uživatelsky definovaný

rozsah pro každý prvek je shodný s rozsahem jeho datového typu

Pole jakéhokoli datového typu zabírají 20B paměti a 4B pro každý rozměr pole, plus počet bytů zabraných vlastními daty.

Rozsah platnosti

Udává, ve které části – a v jak velké části – aplikace má jméno proměnné (konstanty) vazbu na tutéž entitu (proměnnou, objekt …).

Lokální – platí v dané proceduře, či funkci. Deklarují se uvnitř procedury příkazem Dim.

Modální – platí v daném formuláři. Deklarují se v záhlaví modulu formuláře příkazem Dim.

Globální – platí v celém projektu. Deklarují se v basickém modulu příkazem Public.

Doba platnosti

Deklarace Dim – proměnná existuje pouze při běhu procedury, při novém spuštění se znovu inicializuje.

Static – hodnota se uchová i po skončení běhu procedury a vstupuje do ní i při jejím dalším volání.

Deklarace proměnné

Deklarace nejsou povinné, avšak po zápisu klíčového slova Option Explicit jsou vyžadovány. Proměnná se musí deklarovat před prvním použitím. Má tu výhodu, že předejdeme překlepům v názvech proměnných.

Není-li proměnná deklarována je typu Variant.

a)        Jednoduchá proměnná

Deklarace se provádí zápisem

jméno_proměnné [As typ]

např.

Dim sestra As String

Public jmeno As String * 20 ‘definována pevná délka 8 znaků

b)        Uživatelem definovaný typ

Deklaruje se pouze v deklarační části basického modulu nikoliv procedur.

Např.

Type zamestnanec

Jmeno As string

Prijmeni As string

Vykonnost As integer

End type

Po vytvoření tohoto uživatelského typu – deklarace proměnné delnik:

Dim delnik As zaměstnanec

Použití:

delnik.jmeno = „Jan“

c)        Pole

Proměnná na jejíž prvky se odkazujeme indexem. Jeho prvky mají stejný datový typ (výjimka je variant).

Deklarace: jméno_pole[([indexy])] [As typ][*]

jednorozměrná pole

Např.:

Dim intPole (20) As Integer

Dim Pole(1 To 5) As String

Pole

aaaa

bbbb

cccc

dddd

eeee

Pole(1) Pole(2) Pole(3) Pole(4) Pole(5)

vícerozměrná pole pro uložení matic

Např.

Dim matice (1 To 10, 1 To 10) As Integer

dynamická pole - pro případ, kdy neznáme rozměr a meze pole a jsou upřesněny až za běhu programu

deklarace : Dim intPole() As Integer

před prvním použitím klíčové slovo ReDim

N=20

ReDim intPole (1 To N) As Integer

ReDim intPole(0) ‘ odalokace paměti

d)        Konstanty

Uživatel může definovat vlastní konstanty následující deklarací :

[Public][Private] Const názevkonstanty [ As typ] = výraz

Const pi = 3.14159265358979

Const Sto=100

Sám VB má množství konstant, které jsou veřejné.

Počáteční hodnoty proměnných

Numerické proměnné => 0

Řetězce proměnné délky => řetězec nulové délky

Řetězce pevné délky => řetězec obsahující binární nuly

Variant => Empty

Řídící struktury

Programátor potřebuje ovládat tok provádění příkazů, jinak se příkazy provádějí v pořadí zleva doprava a shora dolů. Řídící struktury umožňují  větvení programu. Řídící struktura mění pořadí příkazů a počet vykonání.

Dělíme je na rozhodovací struktury a smyčky (cykly).

Rozhodovací struktury

If podmínka Then příkaz

If podmínka Then

příkazy

Else

příkazy

End If

If podm1 Then

blok příkazů1

ElseIf podm2 Then

blok příkazů2

Else

blok příkazů 3

End If

Select Case testovací výraz

Case výraz2

příkazy1

Case výraz2

příkaz2

Case Else

Příkazn

End Select

Struktury cyklu

Do While podmínka

příkazy

Loop

Do

Příkazy

Loop While podmínka ‘provede se aspoň jednou

For počítadlo=start To konec [Step p růstek]

Příkazy

Next [počítadlo]

For Each prvek In skupina

Příkazy

Next prvek

Opuštění řídící struktury Exit For, Exit Do

Návěští - umožní skok na jiné (označené) místo programu.

příklad: Pokracuj: Sem: Znovu: Konec:

Go To Konec

Série příkazů s objektem:

With objekt

[příkazy]

End With

Algoritmizace základních úloh

Úkol č.1

Nalezněte maximum a minimum ze tří vstupních čísel A,B,C.

Řešení je naznačeno následujícím vývojovým diagramem.

Úkol č.2: Setřiďte vstupní posloupnost n čísel od největšího k nejmenšímu.

Pro řešení je použit algoritmus Bubble sort.

BubbleSorting

Proměnné :

a(i) – vstupní pole

N – počt vstupních čísel

pom – pomocná proměnná

k – počet utříděných prvků posloupnosti

IZ – indikace záměny prvků

setřiďuje od největšího k nejmenšímu

maxima probublávájí vlevo, minima vpravo

Procedury a funkce

Procedura je menší logický celek, kterým členíme program. Můžeme říci, že je stavebním prvkem, který je určen pro opakované použití.

Dělíme na procedury:

  • událostní (event procedures)

Připojeny k událostem jednotlivých ovládacích prvků, vyvolají se až při události

  • obecné (může ji volat událostní procedura) general

Není připojena k objektu.

Typy jsou následující:

  1. SUB - uvozené klíčovým slovem Subroutine – podprogram

nevrací po svém ukončení žádnou hodnotu

ukončeno klíčovým slovem End Sub

  1. Funkce - uvozené klíčovým slovem Function vrací hodnotu

funkce je zvláštní případ procedury pro provádění výpočtů

  1. Property vrací hodnoty a přiřazují hodnoty, nastavují odkazy na objekty

Událostní procedury

Události mohou například být kliknutí na tlačítko, stisk klávesy atd.

Ve VB jsou vytvářeny programy řízené událostmi. To znamená, že po spuštění programu se objeví komunikační prostředí programu a VB čeká na akci (událost) uživatele. Objekt na danou událost reaguje podle toho, co nadefinoval programátor (co je uvnitř procedury, která se spustí, když nastane daná událost)

Název událostní procedury je sestaven z názvu objektu podtržítka a jména události.

Příklad 1: Výpis na formulář slova „Ahoj programátore“, tlačítka Konec a Vypis

Private Sub Cmdvypis_Click()

Print “Ahoj programátore“
End Sub

Private Sub Cmdkonec_Click()

End

End Sub

Definice a použítí funkcí

[Private] [Public] [Static] Function jméno_procedury (parametry) [As typ]

příkazy

End Function

Příklad definice :

  1. Function Mocnina (a As Single) As Single

Mocnina=a*a

End Function

  1. Public Function Kontrola(JménoUživatele As String, heslo As String) As String

Příklad použití :

  1. K=Mocnina(5)
  1. návrat = Kontrola(txtUserName.Text, txtPassword.Text)

Pokud chybí definice návratové hodnoty pak je variant.

Zásady psaní programového kódu

Styl psaní kódu ve VB je jedna z nejtěžších částí, protože budete-li potřebovat někde najít chybu či přidat další kód, musíte se v kódu výborně vyznat. To není těžké, když program píšete jeden den, ale když už program píšete déle, zaručeně si nebudete pamatovat význam všech dříve psaných funkcí. Od toho jsou tzv. komentáře, které můžete libovolně do kódu vkládat. V návrhu se zobrazují jako část kódu, ale překladač je přeskakuje, jako kdyby šlo o prázdné řádky. Komentáře se vkládají za znak ' nebo Rem a ve vývojovém prostředí se poté komentář zbarví na zelenou barvu. Komentáře používejte takřka všude, kde to jde, protože vám tím zpřehledňují kód a výslednou velikost souboru neovlivní.

Komentáře:

Komentáře se pro záhlaví modulu obsahují: název modulu, název souboru, kdo jej vytvořil, zda a kdo jej kontroloval a kdy. Komentář pro záhlaví funkce obsahuje: co funkce dělá, jaké má parametry, …

Komentáře pro deklaraci proměnných vysvětlují význam, účel a použití deklarovaných proměnných.

Komentář je jen jedna z několika položek, které vám zpřehlední kód. Další důležitou položkou je vkládání prázdných řádek a odsazování.

Pravidla pro správné psaní kódu:

Rozkouskujte kód pomocí prázdných řádků.
Nepiště příliš dlouhé, nepřehledné procedury - pokud možno by jejich délka neměla přesáhnout jednu obrazovku.
Nepřehánějte odsazování. Máte-li problémy s příliš dlouhými řádky kódu, je možné, že máte příliš velké odsazení.
Pro vylepšení čitelnosti kódu závorkujte. Nikdo z těch, co po vás kód čtou, by neměl bádat nad tím, co jste to vlastně napsal.
Udržujte obrazovku ve vizuálně dobrém stavu. Při vytváření dlouhých řetězců bude lepší tento vytvořit řadou postupných přiřazení.

Barevné značení v editoru programového kódu:

klíčová slova

Modře

názvy operátorů, příkazů, funkcí, metod

komentář

Zeleně

‘ nebo Rem ( remark)

Ostatní

Černě

Chyby

Červeně

Typové předpony:

Deklarujete-li proměnné na začátcích procedur, může se vám stát, že si nebudete pamatovat, jaký datový typ proměnná obsahuje, a museli byste se koukat na začátek procedury, jaký datový typ jí byl přidělen. Abyste se tomuto vyhnuli, používejte tzv. typové předpony. Typová předpona je několik znaků, které se napíší před proměnnou a vy budete ihned vědět, jaký datový typ proměnná má.

Příklad použití typové předpony:

Dim strFile As String
Dim bolExist As Boolean

Tabulka typových předpon

byt

Byte

bol

Boolean

cur

Currency

dbl

Double

dte

Date

sng

Single

lng

Long

int

Integer

obj

Object

str

String

var

Variant

Předpony nejsou jenom typové, ale dají se použít i u prvků. Takovým proměnným se říká předpony ovladačů. Vzhledem k tomu, že prvků může být ve Visual Basicu tolik, kolik si nainstalujete, tak je zde uvedeno jen několik základních předpon.

Tabulka předpon ovladačů

pic

PictureBox

lbl

Label

txt

TextBox

fra

Frame

cmd

CommandButton

chk

ChechBox

opt

OptionButton

cbo

ComboBox

lst

ListBox

hsb

HScrollBar

vsb

VScrollBar

tmr

Timer

drv

DriveListBox

dir

DirListBox

fil

FileListBox

shp

Shape

lin

Line

img

ImageBox

dat

Data

ole

OLE

Zápis vlastností, metod, funkcí

Způsob

příklad

Funkce

stačí zapsat název funkce a parametry

MAX(a,b),  COS (3,1415)

Metoda

nazevobjektu.metoda parametry]

frmdalsi.show

Vlastnost

nazevobjektu.vlastnost = hodnota vlatnosti

frmdalsi.caption = “Další formulář“

Název událostní procedury

nazevobjektu_udalost

frmhlavni_load

Dva příkazy na jednom řádku – odděleny „:“ => příkaz1:příkaz2, ale pozor

If p=1 then x = 1 : y = 1

není to samé jako

If p=1 then x=1

y=1

Je-li třeba rozdělit jeden příkaz na více řádků – konec řádku je ukončen mezerou a podtržítkem. Viz. příklad 15min.vbp.

Vlastnosti objektů

Vlastnosti udávají vzhled a chování ovládacího prvku v aplikaci.

př. textové pole má definován název, font, velikost pole, jeho umístění ve formuláři, přístupnost (Enabled) atd.

kategorie vlastností : vzhled (appearance), chování (behaviour), vazba na databázová data

vlastnosti podle dostupnosti :

lze nastavit jednou při zakreslování do formuláře, nelze měnit programovým kódem,

pouze za běhu programu

jak při tvorbě formuláře, tak při běhu programu (většina vlastnost

Nejčastější vlastnosti: name (identifikátor), appearance (tvar) – zobrazení ploché, plastické, caption (popisek), backcolor (barva pozadí), forecolor (barva popředí, např. textu, tvaru, čáry), font (font písma pro psaní na objekt), enabled (přístupnost objektu), visible (viditelnost), with (šířka), height (výška), left (odsazení levé hrany objektu od hrany formuláře), Top (odsazení horní hrany), mousepointer (podoba kurzoru), Tag (uživatelský údaj - jakýkoliv)

Příklad 2: Nastavování vlastnosti WindowState formuláře pomocí tlačítka Zvětšit/Zmenšit.

Private Sub Cmdveokna_Click() 

Frmokno.cls ‘vymaže formulář

If Frmokno.WindowState = 2 Then

Frmokno.WindowState = 0 

Cmdvelikost.Caption = “Zvětšit” 

Print “Okno je zmenšené“ 

Else If Frmokno.WindowState = 0 Then

Frmokno.WindowState = 2  

Cmdvelikost.Caption = “Zvětšit”  

Print “Okno je zvětšené“ 

End If

Výrazy

operand1 operátor operand2

Operátory:

Matematické - +, -, *, /, (celočíselné dělení), MOD (zbytek po celočíselném dělení)

porovnávací - =, <, >, <>, <=, >=, Is (rovnost objektů), Like (porovnání se šablonou)

logické - not, and, or, eqv, xor, imp

řetězící - &, + (spojování řetězců)

Precedence oprátorů (přednost)

matematické, porovnávací, logické

zleva doprava

změna precedence pomocí závorek

Příklad 3a: Výpis osoby – uživatel zapíše jméno, příjmení a rok narození a vše se vypíše na formulář (do Labelu).

Private Sub cmdvypis_Click()

Dim strjmeno As String

Dim strprijmeni As String

Dim strpohlavi As String

Dim intnarozeni As Integer

strjmeno = txtjmeno.Text

strprijmeni = txtprijmeni.Text

intnarozeni = txtnarozeni.Text

lblvypis.Caption = strjmeno & “ “ & strprijmeni & “ narozen(a) “ & intnarozeni

End Sub

Funkce VB

Matematické funkce

Znaménko Sgn(číslo)

Absolutní hodnota Abs(číslo)

Zaokrouhlení dolů Int(číslo)

Zaokrouhlení nahoru Chnt(číslo)

Odříznutí celé části Fix(číslo)

Maximum Max(a, b, …)

Minimum Min(a, b, …)

Sinus Sin(a)

Cosinus  Cos(beta)

Funkce IsNumeric, IsDate vrací True nebo False

IsEmpty – zda-li byla přiřazena hodnota o začátku spuštění programu

IsNull - dosud neurčená data

varVariant = Null , varVariant=Empty

Funkce pro vstup a výstup údajů :

Funkce InputBox – vstup údajů. Do okna se načítá řetězcová proměnná.

Př. strJmeno=InputBox(„Zadej jméno osoby“)

Funkce MsgBox slouží pro výstup. Zobrazí okno se zprávou, okno obsahuje : text, tlačítka, ikony.

MsgBox(text[, tlačítka] [, nápis-title] [, helpfile, context])

Argumenty:

vbOKOnly - jen tlačítko OK

vbOKCancel - tlačítka OK a Cancel

vbAbortRetryIgnore - tlačítka Abort, Retry a Ignore

vbYesNoCancel - tlačítka Yes, No a Cancel

vbYesNo - tlačítkaYes a No

vbRetryCance - tlačítka Retry a Cancel

vbCritical - tlačítko OK s ikonou kritické zprávy

vbQuestion - varování s ikonou otazník

vbExclamation - ikona varování

vbInformatin - informační okno

Např. MsgBox (“Zpráva pro uživatele”, vbOKCancel+vbExclamation,”Okno se zprávou”)

Funkce datumu a času

funkce Now – právě aktuální datum a čas

Format (Now,“hh:mm“) vrací 14:20

Funkce pro práci s řetězci

Práce je s řetězci je častou úlohou. Typickými úlohami je

  • spojení (”dobrý“ & “den”), rozdělení řetězců 
  • zjištění podřetězce z daného řetězce, zjištění výskytu

Klíčové slovo Popis Příklad

Ucase Změní písmena v řetězci na velká Ucase (“Pavel“) vrátí PAVEL

Lcase Změní písmena v řetězci na malá

Len Vrací délku řetězce Len (“Mississippi“) vrátí 11

Right Vrací z řetězce do n-tého znaku zprava Right (“Kašpárek“,5) vrátí párek

Left Vrací z řetězce do n-tého znaku zleva Left (“Ahoj“,3) vrátí Aho

Mid Vrací z řetězce určitý počet znaků od pozice start Mid (“kašpárek,4,3) vrátí pár

InStr Hledá podřetězec v daném řetězci

String Vrátí zadaný počet určených znaků String(8,*) vrátí ********

Space Vrátí zadaný počet mezer Space(5)

Asc Vrátí kód ASCII zadaného písmene Asc (“A“) vrátí 64

Chr  Vrátí písmeno odpovídající ASCII kódu Chr(97) = a

Xor  Provádí mezi dvěma čísly operaci výlučného nebo 65 Xor 50 vrátí 115

115 Xor 50 vrátí 65

Trim Odřízne mezery z obou stran Trim(“ ahoj “) vrátí “ahoj“

Ltrim Odřízne mezery zleva Ltrim(“ ahoj “) vrátí “ahoj “

Rtrim Odřízne mezery zprava Rtrim( “ ahoj “) vrátí “ ahoj“

Lset Při opakovaném naplnění proměnné je velikost len() stejná zprava retez=“aaa“; Lset retez=“abcde“ vrátí “abc“

Rset Při opakovaném naplnění proměnné je velikost len() stejná zleva retez=“aaa“; Rset retez=“abcde“ vrátí “cde“

Cstr Převod na řetěz Cstr (“A” < “B” ) vrátí “true”

Str Převede číslo na řetězec

Val Inverzní k Str Val („ 2 45 78“)

Cint převod řetězce na číslo datového typu integer

Funkce lze vnořit do sebe.

Znaková sada ASCII obsahuje

0-31 řídící znaky

32-127 základní sada

128 –255 graf. symboly a cizojazyčné abecedy

Operátory porovnávání textových řetězců jsou <>, =, >, <, <=, >=

příklad : “A” < “B” true

“A” < “a” true

“Matěj” < “Martin” se vyhodnotí jako False!

x

 
Kreslení

Kam : do objektu formuláře nebo do objetu picture box (konvence označování pic)

Rozměry Height, With zjistíme ve vlastnostech ( u obou objektů).

y

 
(picObraz.print “Toto je text“, picObraz.cls)

Události : paint, click, dblclick

Počátek souřadnic je levý horní roh, má souřadnice 0,0.

Měřítko - jednotka 1 twip (1/20 bodu na tiskárně). 1palec=1440 twipů 1 cm=567twipů

Rozměry na tiskárně, na obrazovce se liší velikostí monitoru a rozlišením.

Jednotka vykreslování lze měnit vlastností ScaleMode.

picObraz.ScaleMode = 3 ‘stupnice v pixlech

Nastavení měřítka:

  • pro vykreslování objektů na formulář - x, y, poloměr, tloušťka čáry
  • pro vlastnosti formuláře a ovládacích prvků jako jsou with, height, top, left
  • Form1.ScaleMode - výběr ze sedmi možností
  • 1 - Twip = 1440 inches
  • 2 - Point = 72 inches
  • 3 -Pixel - bod výstupního zařízení
  • 4 - Character: horizontal =120 twips per unit; vertical = 240 twips per unit
  • 5 - Inch
  • 6 - Milimeter
  • 7 - Centimeter

0 - User - vlastní měřítko pak je nutné nastavení vlastností ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight

Metoda line – kreslení čáry

Objekt.Line (souradnice počátečního bodu) – (souřadnice koncového bodu)

Objekt.Line (x1,y1) - (x2,y2)

Př. picObraz.Line (0,0) – (1000,1000)

metoda Pset nastaví barvu pro individuální pixel

picObraz.Pset (x,y) [,color]

Funkce RGB(0,0,255) jasně modrá

Př. Generovaní libovolné barvy

Public Function barva() As Double

r = 255 * Rnd

b = 255 * Rnd

g = 255 * Rnd

barva = RGB(r, g, b)

End Function

Metoda circle

a)         kreslení kruhu

Objekt.circle (stredx, stredy),poloměr

. PicObraz.circle (1500,1500),1000

b)        kreslení oblouku

metoda circle (stredx, stredy),polomer,barva,pocatecni_ uhel, koncovy_uhel

počátek a konec v radiánech)

Př.: PicObraz.circle (1500,1500),1000, PI/2,PI

c)         kreslení elipsy

metoda circle (stredx, stredy),poloměr, barva,start, end, aspect

aspect je poměr horizontálních a vertikálních rozměrů

při udání start a end se vykreslí část elipsy aspect >1 0<aspect<1

Př. : PicObraz.circle (1500,1500),1000, , , 2

d)        kreslení n-úhelníku

nakreslíme pomocí metody line

x

y

1.bod

1000

2.bod

3.bod

n-tý bod

Pole (1, 1) x - ová souřadnice 1. bodu

Pole (1, 2) y - ová souřadnice 1. bodu

Příklad:

‘kreslení pětiúhelníku

For i = 1 To 4

PicObraz.Line (pole(i, 1), pole(i, 2))-(pole(i + 1, 1), pole(i + 1, 2))

Next i

‘ cara od posledniho bodu k prvnimu

PicObraz.Line (pole(5, 1), pole(5, 2))-(pole(1, 1), pole(1, 2))

Vlastnosti objektu (form nebo picture) :

  • síla kresleného objektu - Form1.DrawWidth. 1 je implicitní.
  • barva kresleného objektu Form1.ForeColor
  • styl čáry - Form1.DrawStyle - výběr ze 6-ti konstant (Plná - implicitní, Čárkovaná, …)
  • výplň kruhu (elipsy) - Form1.FillStyle - výběr ze sedmi kategorií (Plná, Průhledná - implicitní, Příčné šrafování, ..)
  • barva výplně - Form1.FillColor - jako ForeColor

Psaní textu na formulář

Print - Platí nastavení ForeColor

Lze nastavit font - vlastnosti nebo Form1.Font.Parametr

Lze umísťovat pomocí nastavení vlastností Form.CurrentX a Form.CurrentY. Jinak se kreslí do posledně použitého místa na formuláři.

Mazání nakresleného textu a objektů

Pokud není vlastnost formuláře AutoRedraw nastavená na hodnotu true dojde ke smazání vždy při překreslení okna. Jinak lze použít metodu Form.Cls

Všechny předchozí kreslící techniky lze využít pro kreslení do objektu PictureBox.

Příklad 9: Vytvořte pozadí formuláře, které plynule přechází od modré do černé.

Private Sub Frmhlavni_Paint()
Dim lngporadi As Long


Frmhlavni.DrawWidth = Int(Frmhlavni.Height / 256)
For lngporadi = 1 To Frmhlavni.Height Step Frmhlavni.DrawWidth
Frmhlavni.Line (0, lngporadi)-(Frmhlavni.Width, lngporadi), _

RGB(0, 0, 256 - 256 * lngporadi / Frmhlavni.Height)
Next lngporadi
End Sub

Události ve VB

Události jsou určeny především k tomu, aby zachytily činnost uživatele, která není deterministická a program nemůže předvídat, kdy nastane. Události lze ovšem aktivovat i programově. Řadu událostí lze také spustit nepřímo, změnou vlastnosti prvků.

  • Vyvolané myší
  • Vyvolané klávesou
  • DragDrop, DragOver
  • Vyvolané z externích zařízení

Události myši

Click – nastane, když uživatel stiskne klávesu myši a opět ji uvolní, to vše nad objektem. Může též nastat při změně hodnoty. Pro objekt formulář nastane, když uživatel klepne buď na prázdnou oblast mimo ovládací prvky, nebo na zablokovaný (disabled) prvek. Kromě prvků CheckBox, CommandButton, ListBox a OptionButton natane událost při klapnutí na levou i pravou klávesu myši.

Prvek

Akce uživatele

Akce programu

CheckBox

klapnutí levou klávesou, když je prvek v ohnisku, mezerník

Změna vlastnosti value

CommandButton

klapnutí levou klávesou, když je prvek v ohnisku, mezerník. ENTER a vlastnost Default=True; ESC a vlastnost Cancel=True

Změna vlastnosti value na True

OptionButton

klapnutí levou klávesou, když je prvek v ohnisku, mezerník

Změna vlastnosti value na True

ListBox

klapnutí levou klávesou, výběr položky ze seznamu

ComboBox

klapnutí klávesou myši, výběr položky ze seznamu

ostatní

klapnutí klávesou myši

DoubleClick – nastane, když uživatel po sobě klikne nad objektem. Pro ovládací prvky platí:

dvojklik na prvku levou klávesou myši

dvojklik na položce seznamu levou klávesou myši – prvky ComboBox stylu 1, FileListBox, ListBox , DBComb, DBList.

MouseDown – nastane, když nad prvkem uživatel stiskne klávesu myši.

MouseUp

MouseMove – nastává, když uživatel pohybuje myší. Objekt dostává tyto události při každém pohybu ukazatele nad sebou; jakmile ukazatel přejede nad jiný objekt, začne dostávat události MouseMove ten.

Change – indikuje změnu obsahu ovládacího prvku. Jak a kdy tato událost nastane to závisí na druhu ovládacího prvku.

Prvek

Akce uživatele

Akce programu

ComboBox

změna textu v poli textu, jen u stylů 0 a 1, kde je povoleno do pole textu zapisovat

změna textu programem

DirListBox

dvojklik nového ardesáře

změna vlastnosti Path

DriveListBox

výběr nové jednotky

změna vlastnosti Drive

HScrollBar

pohyb knoflíku jakoukoliv metodou

změna vlastnosti Value

VScrollBar

pohyb knoflíku jakoukoliv metodou

změna vlastnosti Value

Label

změna dat vazbou DDE

změna vlastnosti Caption

PictureBox

změna dat vazbou DDE změna vlastnosti Picture

TextBox

změna textu

změna dat vazbou DDE změna vlastnosti Text

Události z klávesnice

KeyDown – nastane na prvek ležící v ohnisku, když uživatel stiskne klávesu. Poskytuje kódy všech kláves Shift, Ctrl a Alt. Neposkytne výsledné znaky (k tomu je určena událost KeyPress).

KeyUp – nastane na prvek ležící v ohnisku, když uživatel uvolní stisknutou klávesu. Dále platí vše, co pro událost KeyDown.

KeyPress - nastane pro objekt v ohnisku, když uživatel stiskne a uvolní ANSI klávesu. Kromě kláves viditelných znaků to může být i jejich klávesová kombinace a Ctrl a klávesy Enter a BackSpace. Událost předává znak, držení předřadných kláves nebo stisk řídících kláves (jako argument procedury). Úhoz se přeloží na znak pomocí funkce Chr(KeyAscii) popř. Zpět funkcí Asc(znak).

KeyPreview - vrací nebo nastaví hodnotu, které určuje, která událost na klávesnici proběhla na formuláři před událostí na ovladači (

Returns or sets a value that determines whether keyboard events for forms are invoked before keyboard events for controls. The keyboard events are KeyDown, KeyUp, and KeyPress.)

Kódy kláves

Constant Value Description

vbKeyLButton 1 Left mouse button

vbKeyRButton 2 Right mouse button

vbKeyCancel 3 CANCEL key

vbKeyMButton 4 Middle mouse button

vbKeyBack 8 BACKSPACE key

vbKeyTab 9 TAB key

vbKeyClear 12 CLEAR key

vbKeyReturn 13 ENTER key

Příklad 7:

Vytvoření horkých kláves: F1, F2, Shift - F3, Ctrl - F3, Alt - F3

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyF1 Then Print 'F1'

If KeyCode = vbKeyF2 Then Print 'F2'

If KeyCode = vbKeyF3 Then

If (Shift And vbCtrlMask) Then

Print 'CTRL - F3'

ElseIf (Shift And vbShiftMask) Then

Print 'SHIFT - F3'

ElseIf (Shift And vbAltMask) Then

Print 'ALT - F3'

Else: Print 'F3'

End If

End If

Událost DragDrop

Nastane po dokončení operace tažení (drag-over), když je ukončena nad objektem uvolněním klávesy myši. Také použitím metody Drag s argumentem akce 2 (Drop).

Private Sub Form_DragDrop(source As Control, x As Single, y As Single)

Source = prvek, který byl potahován

Příklad 8: Procvičení událostí DragDrop a DragOver

Image 1
Picture c:WindowsSystemicocdrom02.ico
DragIcon c:WindowsSystemicocdrom02.ico
DragMode 1-Automatic

Private Sub imgcdrom_DragDrop(Source As Control, X As Single, Y As Single)

Source.Visible = True

End Sub

Private Sub imgcdrom_DragOver(Source As Control, X As Single, Y As Single, State As Integer)

Source.Visible = False

End Sub

Private Sub imgkos_DragDrop(Source As _ Control, X As Single, Y As Single)
Source.Visible = False
If Source.Tag = 'Fire' Then
imgkos.Picture = imgkoshori.Picture
picmrak.Visible = True
Timer1.Enabled = True
End If
End Sub

Private Sub Timer1_Timer()

picmrak.Move picmrak.Left - 50, picmrak.Top - 75

End Sub

Událost DragOver

Nastává během tažení. Událost lze použít ke změně ukazatele myši nad možným cílovým objektem (je určen polohou myši, což je jeden z argumentů události DragOver)

Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)

Source = prvek, který byl potahován

State = 0 - Enter (vstupuje - source control is being dragged within the range of a target)

State = 1 - Leave (vystupuje - source control is being dragged out of the range of a target)

State = 2 - Over (je nad - source control has moved from one position in the target to another)

Událost DropDown - nastává u prvku ComboBox stylů 0 a 2 při rozbalení zavřeného seznamu. Lze použít k přípravě seznamu.

Error - nastává pouze jako důsledek chyby přístupu k databázi v prvků Data a DBGrid, když se neprovádí žádný program Visual Basic. Číslo chyby se předá jako argument.

GotFocus - nastává, když objekt obdrží ohnisko buď akcí uživatele, nebo programově metodou SetFocus. Jsou-li všechny viditelné prvky blokovány (disabled), může ohnisko dostat i objekt Formulář.

LostFocus - nastane při odsunu ohniska z objektu buď v důsledku akce uživatele, nebo programovou změnou metodou SetFocus.

Paint - nastává po vykreslení (části) objektu po jeho přemístění, nebo zvětšení, případně po jeho odkrytí odsunutím jiného okénka.

PathChange - nastane u prvku FileListBox po změně cesty nastavením vlastností FileName nebo Path programově.

PatternChange - nastane u prvku FileListBox po změně šablony jmen souborů nastavením vlastností FileName nebo Pattern programově.

Reposition - nastane u prvku Data, když je nastaven nový aktuální záznam.

Resize - nastane, je-li objekt zobrazen poprvé nebo se změní stav jeho okénka (minimalizací, maximalizací, obnovou)

Scroll - nastane, když se knoflík posuvníku, nebo objekt obsahující posuvník, posune nebo přemístí.

Timer - nastane u prvku Timer po uplynutí časového intervalu nastaveného vlastností Interval.

Validate - nastane u prvku Data, než se jiný záznam stane aktuálním záznamem; před metodou update (kromě uložení dat metodou UpdataRecord) a před operacemi Delete, Unload a Close.

Vlastnosti projektu

Při otevírání okna probíhají události:

Form_Initialize – inicializace formuláře, probíhá vytváří-li aplikace novou instanci objektu Form

Form_Load – natažení do paměti

Form_Resize – změna velikosti, nastane při prvním zobrazení a při změně velikosti

Form_Activate – aktivování formuláře, když se formulář stává aktivním oknem

Form_Paint – vykreslení/překreslení

Příklad 10: Změna velikosti tlačítka při změně velikosti formuláře - potáhnutí myší

Kam umístit (do které události) příkazy ke změně velikosti formuláře?–Inicialize, Load, Resize, Activate, Paint. Které vlastnosti objektu Form (objektu Command) se budou měnit?

Private Sub Frmhlavni_Resize()
Cmdkonec.Height = 0.2 * Frmhlavni.Height
Cmdkonec.Width = 0.2 * Frmhlavni.Width

Cmdkonec.Top = Frmhlavni.Height - Cmdkonec.Height - 1000 

Cmdkonec.Left = Frmhlavni.Width - Cmdkonec.Width - 500

End Sub

Formátování čísel, řetězců, času

Format(výraz, formát)

Formátování času

Funkce(time, day, year, now)

Cas = Format(Time, “format_času“)

c – v dlouhem tvaru  >>> 12:38:25 (hodiny, minuty, sekundy)

d – den, jako číslice od 1 do 31

dd - den, jako číslice od 01 do 31

ddd - den, jako po – ne

dddd - den, jako pondělí – neděle

ddddd – krátké datum jako je nastavené v registrech d.m.yyyy

w – den v týdnu 1-7

ww – týden 1-53

m – měsíc 1-12

mm – měsíc 01-12

mmm – led-pros

mmmm – leden-prosinec

q – čtvrtletí 1-4

y – den 1-366

yy – kalendářní rok 00-99

yyy – rok 1900-2040

h – hodiny 0-23

hh – 00-23

m – minuty 0-59

mm – 00-59

s – sekundy 0-59

ss – 00-59

ttttt – mm:ss

AM/PM

A/P

Příklad 11: Vypište aktuální den a hodinu ve formátu: Dnes je pátek 26.října 8.00 hodin.

Cas = “Dnes je “ & Format(Now, “dddd” & “ d.mmmm” & “ h.mm”) & “ hodin.”

Formátování čísel

Format(8315.4, '00000.00') >>> 08315.40

Format(8315.4, '#####.##') >>> 8315.4

Format(8315.4, '##,##0.00') >>> 8,315.40

Format(315.4,'$##0.00') >>> $315.40

Format(5, '0.00%') >>> '500.00%'.

Formátování řetězců

Format('HELLO', '<') >>> 'hello'.

Format('This is it', '>') >>> 'THIS IS IT'.

Další funkce pro formátování

FormatDateTime

Format Number

FormatPercent

FormatCurrency

Menu Editor (Vytváření menu)

Systém roletových menu k aktuálnímu formuláři se doplňuje prostředkem Menu Editor v nabídce Tools (nebo odpovídajícím tlačítkem).

Lze zde vytvořit celou stromovou strukturu menu, přiřadit horké klávesy, kombinace akcelerátoru i značky zapnuté/vypnuté funkce („fajfky“).

Jsou zadávány tyto údaje:

  • Caption – název položky v menu. Znak & před písmenem udává horkou klávesu (písmeno bude v menu podtrženo
  • Name – jméno položky pro použití programem
  • Index – identifikační číslo položky, nepovinné (pokud nejde o pole). Bývá zvykem číslovat ji s krokem 10.
  • Checked – položka bude zaškrknuta
  • Enabled – položka bude aktivní
  • Visible – položka bude viditelná
  • WindowList – určuje položku hlavního menu, která bude obsahovat seznam
  • dokumentovaných okének (např. Window)
  • Shortcut – přiřadí položce klávesu/kombinaci akcelerátoru
  • HelpContextId – číslo pro návaznost pro kontextovou nápovědu
  • NegotiatePosition – určuje, zda případné položky hlavního menu poskytnuté objekty OLE budou zobrazeny a pokud ano, kam se přiřadí. Podle konvekce bývá menu Soubor zcela vlevo a Nápověda zcela vpravo.

Ve spodní části okna se vykresluje vytvářená struktura menu.

&File

….&Open…

….&Close

….E&xit

&Help

….Help &Topics

….&Index

….&About…

Řádky začínající přímo slovem (bez teček) jsou položky hlavního menu.

& určuje horkou klávesu – aplikace se spustí na první úrovni při stisku Alt, na dalších přímým úhozem.

K dispozici jsou 4 tlačítka se šipkami pro posouvání se ve struktuře menu.

Další tři tlačítka umožňují posunout se na další položku (Next), vložit novou položku (Insert) a rušit položku (Delete).

Položka oddělovače v menu je položka jejíž Caption se sestává z jednoho znaku „-“. Musí mít vyplněno Name i Index a musí mít další standardní vlastnosti Enabled a Visible zaškrknutý.

ToolBar (Nástrojová lišta)

Poskytuje pruhy s nástroji (včetně ToolTips), skupiny tlačítek a jejich přepínání. Nástrojová lišta obvykle obsahuje tlačítka korespondující s položkami z nabídkového pruhu aplikace. Pro každé tlačítko můžete zadat obrázek (i s textem), nápis tlačítka a text pro ToolTip. Kód se vkládá do události ButtonClick. Pomocí SelectCase (vlastnosti Index nebo Key) určíte, o které tlačítko se jedná.

Typy tlačítek:

Styl

Konstanta

Popis

Obyčejné tlačítko

tbrDefault

Běžné tlačítko

Označené tlačítko

tbrCheck

Označené tlačítko

Skupina Tlačítek

tbrButtonGroup

Jen jedno tlačítko ze skupiny může být vybráno

Skryté tlačítko

TbrSeparator

Skryté tlačítko můžete použít k oddělení tlačítek (zajišťuje mezeru velikosti 8 bodů)

Placeholder

TbrPlaceHolder

Slouží pro vyhrazení místa pro jiný ovládací prvek, jako je např. seznam.

Tlačítka lze z programu do nástrojového pruhu pomocí metod Add a Remove objektu Button přidávat resp. odstranit.

Obrázky pro jednotlivá tlačítka se nejdříve umístí do objektu ImageList a pak se z něj pomocí indexů vybírají do nástrojového pruhu.

ToolTip se zapíše do Description (musí být zaškrknuta vlastnost ShowTips).

Práce se soubory

Textový soubor – obsahuje jen textové znaky, je bez formátování (ne Word)

Např. z Notepadu, většinou má koncovku .txt .ini .bat atd.

Čtení a ukládání je sekvenční (mg. Tape audio, video)

Open cesta/ jm.souboru For mode As číslo

mode : Input, Output, Append, Random, Binary, Shared

číslo : 1 až 255

Open C:TEMPtest.txt For Input As #1 ‘otevření textového souboru pro vstup

Open C:TEMPtest.txt For Output As ‘otevření textového souboru pro vstup

Line Input #1, retez načtení řádku textového souboru do proměnné

Retez

znak=Input (1,#1) načtení jednoho znaku do proměnné znak

Write #1  vloží samostatný řádek

EOF(#1) Funkce, která testuje konec souboru end of file

Close #1  Uzavření textového souboru

Lze otevřít více souborů zároveň #1, #2

V módu binary jsou operace čtení a zápisu Get a Put.

Přístup k datům v databázích

Visual Basic umožňuje přístup k datům uloženým v databázích

Ovládací prvek Data z panelu nástrojů umístíme na formulář a nastavíme tyto jeho vlastnosti:

Vlastnost

Hodnota

Connect

Access

DatabaseName

Test.mdb (udejte celou cestu)

RecordSource

Test (název tabulky)

RecordSourceType

1-Dynaset

Do objektu Textbox nebo Label potom zobrazíme jednotlivé atributy tabulky nastavením těchto vlastností:

Vlastnost

Hodnota

DataSource

Data1(název objektu Data)

DataField

Otázka ( název atributu ze zdrojové tabulky)

RecordSource

Test (název tabulky)

RecordSourceType

1-Dynaset

MultiLine

True

ScrollBars

2-Vertical

Chyby a ladění programu

Chyby:

Kompilační chyby - chybná syntaxe, neexistující objekt, chybný parametr,

Run-time chyby - dochází k nim za běhu programu, odkazování se na neexistující objekt, …

Logické chyby - nejhůře odstranitelné

Kompilační a logické chyby

Ladění programu

Ladit program znamená plánovitě hledat a odstraňovat především jeho logické chyby

Nastane-li chyba, uživatel má na výběr:

Continue - pokračovat (jen při malých chybách)

End - ukončit běh programu

Debug - ladit program, program se přepne na řádek, kde nastala chyba

Help - zobrazit detailnější výpis chyby a její možné příčiny

Do režimu ladění se lze přepnout také příkazem Stop v programovém kódu a tlačítkem Debug.

Zarážky

Zarážky neboli body přerušení označují řádky, při jejichž dosažení, před vykonáním příkazu, přejde VB do režimu přerušení (nastavují se klepnutím myši na šedý okraj vedle řádku)

Zarážku nelze umístit na řádek deklarací, do deklarační části modulu, řádek obsahující pouze poznámky nebo návěští zakončené dvojtečkou.

Umístění zarážek:

  • před rozvětvení programu
  • do všech větví, které připadají v úvahu

Okno Local - automaticky sleduje všechny nadeklarované proměnné v dané proceduře a jejich hodnoty

Okno Watches - pro sledování určité proměnné nebo výrazu (proměnné, které mají být sledovány se přidávají příkazem Add Watch)

Okno Immediate - pro testování řádků kódu. Lze jej používat jak v návrhovém režimu, tak v režimu přerušení.

Příklad 5: Zkuste odkrokovat příklad 4. Vytvořte cyklus se strukturou While a Until s podmínkou na začátku i na konci, který vypíše na formulář písmena A až J a zkuste jej protrasovat. (asci kód A=65 )

Private Sub cmdpreved_Click()

Dim intpozice As Integer

For intpozice = 65 To 73

Print chr(intpozice)

Next intpozice

End Sub

intpozice = 65

Do While intpozice < 75

Print Chr(intpozice)

intpozice = intpozice + 1

Loop

Do Until intpozice > 74

Print Chr(intpozice)

intpozice = intpozice + 1

Loop

Odchytávání chyb za běhu programu

Chyby, které vznikají za běhu programu (Run-time chyby) se „odchytávají pomocí příkazu On Error, který se umisťuje na začátek procedury, tedy před řádky, ve kterých by mohla chyba nastat.

  • On Error GoTo řádek/návěští - GoTo slouží ke skoku na jiné místo procedury (používat co nejméně), aktivuje řádek s chybovou rutinou, řízení se předá na řádek nebo návěští v rámci dané procedury
  • On Error Resume Next – aktivuje chybovou rutinu, předá se řízení na následující řádek za řádkem, na kterém nastala chyba. Nemění se tok programu. Program chybu ignoruje a pokračuje dalším řádkem, pouze neprovede činnost, která by vedla k havárii programu. Při výskytu chyby však začne existovat hodnota proměnné Err (typu Integer). Tato číselná hodnota charakterizuje chybu, ke které došlo. Přehled chyb můžete nalézt v helpu pod heslem „Trappable errors“. Výpis významu chyby lze zjistit také pomocí funkce Error(Err). Chyba musí být ošetřena v rámci chybové rutiny.
  • On Error GoTo 0 – deaktivuje chybovou rutinu a systém se dále chová tak, jako by programátorský způsob ošetření chybových stavů nebyl implementován. Neznamená předání řízení na řádek číslo 0 (i kdyby byl tento řádek vytvořen).

Příklad 6: Vytvořte procedudu pro výpočet podílu dvou čísel. Pomocí odchytávání chyb ošetřete, aby nevznikala chyba v případě dělení nulou. Dále zjistěte čísla možných chyb a upravte program tak, aby reagoval na konkrétní chyby.

Private Sub cmdtest_click()

On Error Goto odchycenichyb

MsgBox txtprvni.text/txtdruhe.text

Exit Sub

Odchycenichyb:

MsgBox “Nepovolené dělení nulou“

Resume Next

End Sub

Private Sub cmdtest_click()

On Error Resume Next

MsgBox txtprvni.Text / txtdruhe.Text

Select Case Err.Number

Case 13

MsgBox 'Musí být zadána čísla!'

Case 11

MsgBox 'Nepovolené dělení nulou'

End Select

End Sub

Objekty VB

Form

BorderStyle

Možnosti: formulář bez ohraničení a záhlaví, nelze měnit velikost formuláře, nelze měnit velikost formuláře, minimalizovat jej a maximalizovat, …

Control Box

Možnosti použití: tlačítka na minimalizaci, maximalizaci a ukončení

MaxButton

Možnosti použití tlačítka maximalizaci

MinButton

Možnosti použití tlačítka na minimalizaci

Icon

Ikona formuláře

Moveable

Možnost přesunutí formuláře

Picture

Obrázek na pozadí

Show In Taskbar

Zobrazení na liště Start

Start Up Possition

Startovací pozice formuláře: manuálně nastavitelná, v centru nadřazeného formuláře, v centru obrazovky, v libovolném místě

WindowState

Stav okna: normální, minimalizované, maximalizované

Command Button (Příkazové tlačítko)

Stejně jako u Možností a Voleb lze řešit příkazové tlačítko graficky – pomocí Style, DisabledPicture, DownPicture, Picture, MaskColor, UseMaskColor.

Cancel

True: toto tlačítko má funkci Zrušit (Cancel) – reaguje na klávesu ESC

Default

True: toto tlačítko je stisknuto klávesou ENTER, když není v ohnisku žádné příkazové tlačítko

Value

False-nestisknuto, true-stisknuto

Nezná událost dvojklik.

Text Box (Pole textu)

HideSelection

True: při přesunu ohniska pryč se přestane zobrazovat případně existující výběr textu

Locked

True: změna textu je zakázána

Maxlenght

Nejvyšší zapsatelný počet znaků

MultiLine

True: může obsahovat více řádků textu

PasswordChar

Udává znak, který se vypisuje místo textu v polích pro hesla

ScrollBars

Pole při MultiLine vybaveno posuvníky: 0-žádný, 1-vodorovný, 2-svislý, 3-oba

SelStart

Začátek výběru při označení textu, nebo poloha kurzoru

SelLenght

Délka označeného textu

SelText

Označený text

TabStop

False: pomocí klávesy Tab nelze ne pole textu nastavit ohnisko

Text

Textový obsah pole: při Miltiline více řádků

Je-li zapnuta vlastnost MultiLine, pak lze do textového pole zapsat až 32 KB textu.

Je-li text uzamčen pak jej nelze vyjmout a vložit, jen kopírovat.

Pomocí vlastností SelStart, SelLenght a SelText lze programově nastavit místo vkládání (kurzor), získat nebo přepsat označený text, nebo jej zaměnit.

Label (Nepřístupný text)

Používá se jako popisky prvků, které nemají vlastní Caption, Zobrazení jakýchkoliv údajů, které program vypisuje, ke zobrazení údajů z databáze.

Alignment

0-text rovnán doleva, 1-doprava, 2-centrován

AutoSize

True: velikost se upraví ve vodorovném směru tak, aby byl vždy vidět celý text

BackStyle

0-prvek je transparentní (průhledný)

BorderStyle

1-orámování: je-li Appearance=1, plastický vzhled

UseMnemonic

True: znak & před písmenem udává horkou klávesu

WordWrap

True: prvek se může zvětšit ve svislém směru tak, aby se text vešel (zalomení textu=wrap)

Protože prvky Label nejsou ovládané uživatelem, nelze na ně nastavit měřítko.

Check Box (Možnost)

Alignment

0-popisek (Caption) vpravo, 1-popisek vlevo

Style

0-normální („fajfka“), 1-grafická (Picture, Mask)

DisabledPicture

Ikona zobrazená při nepřístupné možnosti

DownPicture

Ikona zobrazená při označené možnosti

Picture

Ikona zobrazená při neoznačené možnosti

MaskColor

Barva, která je „průhledná“

UseMaskColor

Použít „průhlednou“ barvu

Value

0-neoznačena, 1-označena, 2-šedá (nepřístupná)

Pro Style=1 musíme nastavit obrázky DisabledPicture, DowmPisture, Picture. Pokud chcete, aby čtverečky u obrázků nebyly vidět, je třeba nastavit UseMaskColor na true a stanovit barvu pozadí, která se nebude zobrazovat, bude „skrz ni“ vidět pod prvek.

Nezná událost dvojklik.

Option Button (Volba mezi)

Vlastnosti stejné jako u Check Boxu, ale vlastnost Value nabývá hodnot true/false.

Volby se používají ve skupinách alespoň po dvou. Počáteční stav skupiny je „žádná nevybraná“. Jakmile je některá volba vybraná, ostatní ve skupině se automaticky stanou nevybtanými. Skupiny lze vytvářet v rámci formuláře, rámečku, nebo obrázku.

Dočasné vyřazení volby ze skupiny dosáhnete nastavením vlastnosti Enabled = false.

Volbu, která je implicitní, nastavte při inicializaci formuláře, nebo skupiny přiřazením hodnoty Value=True. Větví-li se program podle voleb, stačí testovat hodnotu volby, která vyhodnocuje standardně vlastnost Value a ta je boolenovská (if volba1 then – ne volba1.value=true)

Frame (Rámeček)

BorderStyle

0-rámeček není viditelný, 1-má popisek a orámování

Font

Dialog při návrhu nastavuje řadu parametrů písma – lze je nastavovat i jednotlivě – viz. následující

FontBold

Tučné písmo

FontItalic

Kurzíva

FontStrikeThru

Přeškrknuté písmo

FontUnderline

Podtržené písmo

FontName

Jméno fontu

FontSize

Velikost písma v bodech

MousePointer

Jaký bude mít tvar nad ukazatel umístěný nad objektem, umožní i vlastní

MouseIcon

Je-li MousePointer=99 (vlastní tvar ukazatele), je zadán soubor .ico nebo .cur s obrázkem

DragMode

Režim tažení: 0-ruční, 1-automatický

DragIcon

Soubor s ikonou, která se při tažení zobrazí

OLEDropMode

1-prvek lze přetáhnout  OLE objekt, 0-nelze

ToolTipText

Text nápovědy, která se zobrazí v „bublině“, nechá-li uživatel ukazatel chvíli nad objektem

HelpContextID

Číslo tématu kontextové nápovědy (po stisknutí F1)

WhatsThisHelp-ID

Číslo tématu nápovědy typu „Co je toto?“

Údaje o fontu se týkají většiny ovládacích prvků.

Údaje „Mouse …“ o ukazateli myši dovolují zvolit anebo navrhnout ukazatel, který se bude zobrazovat nad objektem při běžném nasunutí.

Údaje „Drag …“ se týkají zobrazení ukazatele během tažení.

Amprsand před písmenem textu Caption (u všech prvků, které Caption mají) nastavuje klávesu toho písmene jako horkou klávesu, tj. po stisknutí spolu s podtržením Alt se ohnisko přemístí nad prvek. Rámeček však nemůže mít ohnisko a to se po stisknutí horké klávesy přesune nad další prvek formuláře podle TabIndex.

Picture Box (Obrázek)

Používá se k zobrazení grafiky, jako kontejner pro jiné ovládací prvky a ke zobrazení výstupu grafických metod i textu metodou Print.

Align

Umístění: 0-kam určil návrhář, 1-k horní straně formuláře,2-ke spodní, 3-k levé, 4-k pravé

AutoSize

True: viditelnost se vždy upraví tak, aby byl viditelný celý obsah

ClipControls

Určuje, zda se při změně vykreslí celý prvek nebo jen změněná část obsahu

Picture

Cesta a jméno souboru s bitovou mapou

Může zobrazit tyto obrazové formáty:

  • Bitovou mapu (.mbp, .dib) a různým počtem barev
  • Ikonu (.ico) 16x16 nebo 32x32 pixelů
  • Metafile (.wmf, .emf), „vykreslovaná“ grafika, jakou vytvoříte například v MS Wordu
  • Komprimované formáty GIF (Graphic Interchange Formát, 256 a 16 mil. Barev) a JPEG (Joint Photographic Expert Group, do 256 barev)

Dynamicky lze grafiku do prvku zavést pomocí:

Picture1.Picture = LoadPicture (“j:cestasoubor“)

Bez argumentu se používá ke smazání zavedené grafiky.

Grafiku lze zavést také přes Clipboard nebo Edit-Paste či CTRL-V.

Na kreslení do Picture Boxu lze použít grafické metody Circle, Line, Point a metodu Print na psaní do něj (nastavit AutoRedraw=true pro vykreslování).

Image (Obrazové tlačítko)

Slouží k zobrazování grafiky, případně přizpůsobit její velikost, může též sloužit jako tlačítko.

Picture

Cesta a jméno souboru s bitovou mapou

Strech

True: grafika se zmenší nebo zvětší tak, aby se přesně vešla do prvku

Může zobrazovat obrázky stejných formátů jako Picture Box, používá také stejné metody k jejímu zavádění.

Line (Čára)

Používá se na podtržení, ozdobení, nebo jako obdoby formuláře.

BorderColor

Barva čáry

BorderStyle

Styl čáry: plná, čárkovaní, tečkovaná, …

BorderWidth

Tloušťka čáry

DrawMode

Grafická metoda vykreslení čáry

X1, Y1

Souřadnice jednoho konce čáry

X2, Y2

Souřadnice druhého konce čáry

Shape (Tvar)

BackStyle

0-prvek je transparentní (průhledný)

FillColor

Barva výplňového vzoru

FillStyle

Druh výplně: plná, transparentní, různá šrafování

Shape

Tvar: obdélník, čtverec, elipsa, obdélník se zaoblenými rohy, čtverec se zaoblenými rohy

+ vlastnosti čáry pro vykreslení okraje tvarů

Seznamy

Je-li zapotřebí seřadit (někdy i setřídit) nějaké údaje do jednoduchých seznamů.

Základní ovladače pro práci se seznamy:

  • ListBox (seznam)
  • ComboBox (rozbalovací seznam)

List Box

Je trvale otevřený a obsahuje-li více položek, než je vidět, má vpravo svůj posuvník (popřípadě oba posuvníky.

Columns

Počet sloupců seznamu: 0-jeden sloupec, jiné číslo n: seznam po sloupcích (s n řadky)

ItemData

Seznam specifických čísel, jedno ke každé položce seznamu

List

Vlastní seznam položek, sem lze vložit položky již při návrhu

ListCount

Vrací aktuální počet položek v seznamu

ListIndex

Index právě vybrané položky seznamu

MultiSelect

0-lze vybrat jednu položku, 1-více (označením), 2-více (s předřadnými klávesami Shift a Ctrl

NewIndex

Vrací index posledně přidané položky

SelCount

Vrací počet vybraných položek

Selected

Boolenovské pole, pro každou položku true-vybraná, false-nevybraná

Sorted

True – položky abecedně seřadit

Style

0-standardní seznam, 1-před každou položkou je čtvereček možnosti (checkbox)

Text

Text aktuální položky (té na níž je ohnisko)

TopIndex

Index položky, která je zobrazena jako první

Nejčastěji se pak pokračuje tlačítkem a pracuje se s vybranou položkou. Stejný účinek má dvojklik na položce a do procedury ListBox1_DblClick zapsán příkaz: tlacitko.value = true.

Položky lze zapisovat při návrhu, ale jde to i za běhu programu:

ListBox1.AddItem položka[, index]

Indexy položek začínají od 0.

Vyřazení položky ze seznamu:

ListBox1.RemoveItem index

Vymazaní celého seznamu:

ListBox1.Clear

Vybraná položka:

Je-li možno vybrat jen jednu (MultiSelect=0), pak je její text vždy obsahem vlastnosti Text, protože vybraná položka je současně označená. ListIndex udává polohu vybrané položky. Není-li žádná položka vybraná, je ListIndex=-1. Nastavením List Index na index existující položky ji programem vyberete. Položku lze adresovat: ListBox1.List (index).

Pokud je nastavena vlastnost MultiSelect na True:

For index=0 To ListBox1.ListCount –1

If ListBox.Selected(index) = true Then

…zpracování ListBox.List(index)…

End If

Next index

Combo Box

Je normálně zavřený – otevře se, když kliknete na šipku na jeho pravé straně.

ItemData

Seznam specifických čísel, jedno ke každé položce seznamu

List

Vlastní seznam položek, lze sem vložit položky již při návrhu

ListCount

Vrací aktuální počet položek v seznamu

ListIndex

Index právě vybrané položky seznamu

NewIndex

Vrací index posledně přidané položky

SelStart

Začátek výběru při označení textu, nebo poloha kurzoru

SelLength

Délka označeného textu

SelText

Označený text

Sorted

True – položky abecedně seřadit

Style

1-Simple Combo – bez šipky na pravé straně. Používá se jen vyjímečně. 0-DropDown Combo – má šipku na pravé straně seznamu oddělenou, a především umožňuje přidávat do seznamu položky i přímým zápisem do textové části ovladače.2-DropDown List – má šipku pevně připojenou a přímý zápis neumožňuje.

Text

Text aktuální položky (té na níž je ohnisko)

TopIndex

Index položky, která je zobrazena jako první

Od ListBoxu se liší:

  • Lze vybrat jen jednu položku
  • Má tři tvary podle proměnné style
  • Ve dvou z těchto tří tvarů lze přidávat položky přímo zápisem do textového pole

Vlastnost Style lze nastavovat jen v návrhovém režimu. Text, který zapíšete do pole textu, se do seznamu automaticky nepřidá. Musíte použít příkaz (v Combo1_Change):

Combo1.AddItem Combo1.text (a musíte si hlídat duplicity)

Timer (Časovač)

Tento ovládací prvek reaguje na uplynutí časového intervalu. Je nezávislý na uživateli a můžete jej naprogramovat tak, aby v pravidelných intervalech prováděl určitou akci. Typickou odezvou je testování systémových hodin, je-li čas na provedení určitých úkonů.

Vlastnost Interval specifikuje počet milisekund , které uplynou mezi dvěma událostmi časovače.

Vlastnost Interval má několik omezení :

Interval může být v rozmezí 0 až 64767, což znamená, že nejdelší možný interval nebude o mnoho delší než jedna minuta ( zhruba 64,8 sekundy).

Není zaručeno, že interval bude přesně odpovídat uplynulému času. Pokud vaše nebo jiná aplikace silně zatěžuje systém –dlouhé cykly, náročné výpočty- nemusí aplikace dostávat události časovače tak často, jak je určeno ve vlastnosti Interval.

Zapamatujte si, že událost časovače je periodická. Vlastnost Interval neurčuje „jak dlouho“ ale „jak často“.

Jakmile proběhne nastavený interval, Visual Basic generuje událost časovače Timer.

Časovač musí být umístěn ve formuláři. Časovač se bude zobrazovat na formuláři pouze v režimu návrhu. Za běhu aplikace je časovač neviditelný a proto nejsou jeho umístění a velikost podstatné. Při návrhu lze prohlédnout vlastnosti Timeru a procedury na obsluhu události.

Je ještě jedna významná vlastnost časovače a to Enabled. Je-li nastaveno na True, tak časovač začne pracovat okamžitě po načtení formuláře. Jinak ji nechte na hodnotě False. Pro spuštění operace časovače můžete vybrat vnější událost ( např. klepnutí na příkazové tlačítko). Viz příklad „Odpadkový koš“.

Horizontal Scroll Bar, Vertical Scoll Bar (Posuvníky)

Samostatné posuvníky umožňují přidávat posouvací schopnost těm ovládacím prvkům, které ji sami o sobě nemají.

LargeChange

Rozsah změny hodnoty Value při klepnutí na pás posuvníku

SmallChange

Rozsah změny hodnoty Value při klepnutí na šipku

Max

Maximum hodnoty Value nastavitelné posuvníkem

Min

Minimum hodnoty Value nastavitelné posuvníkem

Value

Hodnota objektu

Posuvníky sledují pohyb knoflíku po pásu pomocí dvou událostí:

Change – nastane při posunutí knoflíku jakýmkoliv způsobem. Zpřístupní výslednou hodnotu po ukončení akce s posuvníkem.

Scroll – nastane při pohybu knoflíku, ne při klepnutí na pás nebo šipky. Program má přístup k měněné hodnotě již během tažení knoflíku.

Hodnota vlastnosti Value odpovídá poloze knoflíku na pásu. Při nejnižší hodnotě je knoflík zcela vlevo (příp. zcela nahoře).

Nastavením hodnoty SmallChange určíte o kolik se změní hodnota Value při klepnutí na šipku posuvníku, hodnotu LargeChange pak, o kolik se změní hodnota při klepnutí na pás.

Drive List Box (Seznam jednotek)

Je uzavřený seznam dostupných jednotek počítače.

Drive

Písmeno vybrané jednotky

List

Vrací položky (cesty) jako znakové řetězce

ListCount

Vrací počet položek

ListIndex

Index právě vybrané položky

TopIndex

Index položky zobrazené zcela nahoře seznamu

Např. Drive1.Drive = “c:“

Při přístupu na jednotku, není-li vložena disketa, CD resp. jiné výměnné médium a není-li chyba ošetřena: ohlásí se a program skončí.

Directory List Box (Seznam adresářů)

Slouží ke zobrazení stromu adresářů a výběru z něj.

List

Vrací položky (cesty) jako znakové řetězce

ListCount

Vrací počet položek v aktuálním otevřeném adresáři

ListIndex

Index právě vybrané položky

Path

Aktuální jednotka a cesta

TopIndex

Index položky zobrazené zcela nahoře seznamu

Indexy:

Aktuální otevřený adresář má index –1

Nadřazený adresář aktuálnímu otevřenému adresáři má index –2

Adresáře které jsou obsaženy v aktuálním otevřeném adresáři mají indexy 0, 1, 2, …

File List Box (Seznam souborů)

Slouží ke zobrazení souborů v adresáři.

Archive

True: zobrazit soubory s bitem Archivuj

Filename

Cesta a jméno vybraného souboru

Hidden

True: zobrazovat soubory s bitem Skrytý

List

Vrací položky (cesty) jako znakové řetězce

ListCount

Vrací počet položek v aktuálním otevřeném adresáři

ListIndex

Index právě vybrané položky

MultiSelect

True: uživatel může vybrat více souborů

Normal

True: zobrazovat soubory se všemi atributovými bity nulovými

Path

Aktuální jednotka a cesta

Pattern

Šablona (wildcard, stand. *.*) pro zobrazování jmen souborů a přípon

ReadOnly

True: zobrazovat soubory s bitem Pouze číst

Systém

True: zobrazovat soubory s bitem Systémový

TopIndex

Index položky zobrazené zcela nahoře seznamu

Common Dialog (Standardní dialog)

Je to sada šesti dialogových okének pro nastavení často používaných parametrů, vyhledání adresáře a jména pro otevření nebo uložení souboru atd. (Musíme mít v WindowsSystém knihovnu COMMDLG.DLL). Tento prvek je při spuštění programu neviditelný.

Z menu Project-Components-karta Controls vybereme Microsoft Common Dialog Control 5.0.

Dialogy se aktivují metodami:

ShowOpen

ShowSave

ShowColor

ShowFont

ShowPrinter

ShowHelp

CancelError

True: stisk Cancel generuje chybu, false:ne

Color

Číslo vyjadřující barvu (dialogy Color a Font)

Copies

Počet tiskových kopií

DefaultExt

Standardní přípona souborů, např. “.doc“, použije se při zápisu jména souboru bez přípony

DialogTitle

Text do záhlaví okénka dialogu

FileName

Cesta a jméno vybraného souboru

Filter

Řetězec zadávající filtry pro zobrazení souborů: popis1|filtr1|popis2|foltr2|…atd., kde popis: textová charakteristika typu souboru, filtr: skupinové jméno nebo více oddělených středníky

Flags

Příznaky řídící chování dialogů

FromPage

Číslo první tištěné stránky

InitDir

Počáteční zobrazený adresář pro dialogy Open a Save As, není-li zadán, zobrazí se aktuální adresář

Max

Dialog Font: max. počet bodů fontu pro výběr

Dialog Print: max. volitelné číslo stránky To

MaxSize

Max. délka jména souboru (1-32K), stand. 256

Min

Dialog Font: min. počet bodů fontu pro výběr

Dialog Print: min. volitelné číslo stránky From

PrinterDefault

True: vybraná tiskárna se stává standardní, false: ne

ToPage

Číslo poslední tištěné stránky

Dialogy Open a Save As

Cestu a jméno vybraného souboru získá váš program po ukončení dialogu z vlastnosti Filename. Př. filtru: Text (*.txt)|*.txt|Word (*.do?; n*.la2)|*.do?;n*.la2

Příznaky (vlastnost Flag) jsou konstanty typu Long (4B). Je-li jich zadáno více musí se sčítat, např. „&H200 + &H400 + &H80000“ nebo rovnou „&H80600

&H200

V dialogu lze vybírat více souborů podržením SHIFT a klávesami šipek směrem nahoru a dolu. Vlastnost FileName pak obsahuje řetězec všech vybraných jmen a cest, vzájemně oddělených mezerami.

&H2000

Uživatel je požádán o vytvoření souboru, který doposud neexistuje. Příznak automaticky nastavuje vlastnost &H1000 a &H800.

&H1000

Uživatel smí zadat do pole FileName pouze jména existujících souborů.

&H10

V dialogu se zobrazí tlačítko Help.

&H4

Nezobrazí se možnost ReadOnly.

&H200000

Použijí se dlouhá jména souborů.

&H40000

Nepoužijí se dlouhá jména souborů.

&H8000

Vybraný soubor nebude mít atribut ReadOnly a nebude v adresáři chráněném proti zápisu

&H2

Dialog oznámí, pokud vybraný soubor už existuje. Uživatel musí jeho přepis potvrdit.

Dialog Color

Před jeho zobrazením nastavte hodnotu Flags na příznak „&H1“

&H2

Dialog zobrazen i s částí Define Custom Colors.

&H8

V dialogu se zobrazí tlačítko Help.

&H4

Znemožní definici vlastních barev.

&H1

Nastaví počáteční hodnotu barvy.

Dialog Font

Umožní nastavit řez, barvu, velikost a další charakteristiky písma. Před vyvoláním dialogu nastavit příznaky.

Dialog Printer

Dialog nastaví parametry, lze zněj přejít na nastavení vlastností tiskárny a lze konfigurovat výchozí tiskárnu, ale vlastní tisk, tj. zaslání tištěných dat do objektu Printer, musí být řešen programově.

Tvorba třídy (class modul)

Dosud jsme používali VB nadefinované objekty (TextBox, PictureBox,…). VB umožňuje vytvořit nové, vlastní objekty, které se nazývají třídy.

Def. : Třída je vytvořený nový objekt, ve kterém se spojí data a procedury do jedné jednotky.

Z kapitoly deklarace datových typů víme, že je možné vytvořit i vlastní uživatelský typ. Uživatelský typ je mocný nástroj pro seskupování navzájem souvisejících datových položek.

Deklaruje se následujícím způsobem:

Public Type Kniha

Titul As String

Cena As Currency

PocetStran As Integer

End Type

Vytvořením třídy tj. spojením uživatelského typu a jeho vlastností a metod dojde k tzv. zapouzdření (encapsulation). Z procedur se stanou privátní procedury a k datům můžou přistupovat právě jen ony. Jediná možnost jak měnit data patřící objektu, je volání jeho rozhraní (vlastností a metod).

Vytvoření třídy

Třída se definuje v modulu třídy.

Menu Project … Add Class Module New, nebo pravým tlačítkem v okně projectu.

Moduly třídy jsou uloženy v souboru *.cls

Moduly třídy mají dvě události Initialize (inicializace) a Terminate (ukončení).

Příklad: Nadeklarovat třídu Thing, která má vlastnost created ( uchovává datum a čas, kdy byl object Thing vytvořen), metodu ReverseName (převrací pořadí písmen vlastnosti Name).

MapObjects

Z www.esri.com lze stáhnout free 90-day evaluation copy knihovny Map Objects ( nyní verze 2.2). Je podporováno jakékoliv vývojové prostředí, které podporuje ActiveX kontrol, jako je Visual Basic, Visual C++, Delphi, PowerBuilder a další. Zle stáhnout vlastní MapObjects, Data a ukázkové příklady Samples.

MapObjects 2 je prvek ActiveX control (OCX) s více než 45 programovatelnými ActiveX objekty, které mohou být součástí standardního vývojového prostředí.

Stiskem pravého tlačítka na nástrojové liště lze dodat volbou Components à Controls ESRI MapObjects.

Objeví se nový nástroj v liště nástrojů:

Map Control

Nápovědu o objektech získáte stiskem tlačítka Object Browser na Visual Basic toolbar:

Nápovědu lze získat též výběrem objektu Map Control a stisk klávesy F1.

Zobrazení dat na mapě

Pravé tlačítko myši na objektu Map1, který jsme vložili do formuláře.

Vybrat Properties

Vybrat Add a vyhledat např. v adresáři c:Program FilesESRIMapObject2SampleData

Vybrat States.shp

Vlastnosti vrstvy se nastavují stiskem tlačítka Properties

Pozor: Vrstvy se vykreslí v okně Map1 až při spuštění programu, nikoliv v režimu návrhu!

Vlastnosti:

Map1. Extent – nastavuje oblast vykreslené mapy

Map1. FullExtent - vlastnost vrací obdélníkový objekt, který ohraničuje všechny vrstvy v mapě

Map1. MousePointer – lze nastavit podobu kurzoru myši

Map1. ToMapPoint (x,y) – sejmutí souřadnic bodu při stisku tlačítka myši nad mapou.

Funkce Map1.TracRectangle vrací obdélníkový objekt

Podrobněji viz GettingStartedwithMOinVB.doc.

Doporučená literatura

  1. Halvorson M.: Microsoft Visual Basic 6.0 Professional krok za krokem, Computer Press Praha, 2001
  2. Morkes D. Visual Basic 6.0 Computer Press Praha, 2000
  3. Microsoft Visual Basic 6.0 Computer Press Brno, 1999
  4. Pokorný J.: Řešené úlohy z Visual Basicu Sbírka 1, Koop, České Budějovice 1998
  5. Kvoch M., Pokorný J.: Programování ve Visual Basicu 5.0, Koop České Budějovice 2000

www:

  1. Výučba. Dostupné na WWW: <https://www.visual-basic.sk>, 10.2002.
  2. Seriál pro začátečníky – CHIP CD. Dostupné na WWW:<https://www.vbasic.cz/serial.asp?id=37>, 10.2002.


Parametry uvedené v hranatých závorkách nejsou povinné, u parametrů ve složených závorkách musí být použit jeden z uvedených.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 6351
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved