CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
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
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.
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.
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:
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)
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í).
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.
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 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í
V prohlížeči (Exploreru) projektu jsou seskupeny všechny části projektu. Mohou zde být umístěny tyto části projektu:
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
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
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).
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í)
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 platnosti a dobou 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é
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é.
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
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
Ú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
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:
Připojeny k událostem jednotlivých ovládacích prvků, vyvolají se až při události
Není připojena k objektu.
Typy jsou následující:
nevrací po svém ukončení žádnou hodnotu
ukončeno klíčovým slovem End Sub
funkce je zvláštní případ procedury pro provádění výpočtů
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()
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 :
Mocnina=a*a
End Function
Příklad použití :
Pokud chybí definice návratové hodnoty pak je variant.
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 | ||
Funkce |
stačí zapsat název funkce a parametry | |
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 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
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
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)
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 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 Now – právě aktuální datum a čas
Format (Now,“hh:mm“) vrací 14:20
Práce je s řetězci je častou úlohou. Typickými úlohami je
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
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!
|
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:
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
Př. 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) :
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 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ů.
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.
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
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
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:
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ý.
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).
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.
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:
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é
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 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:
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
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.
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
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
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é |
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.
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.
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.
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.
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)
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.
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:
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í).
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í.
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 |
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:
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
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ší:
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)
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š“.
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.
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čí.
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, …
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 |
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 |
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ě.
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).
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!
www:
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 |
Vizualizari: 6438
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved