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 umisují 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ù).
|
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ísovat 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 umisuje 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: 6495
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved