VB - 8. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

VB - 8. lekceVB - 8. lekce

 

VB - 8. lekce

Google       Google       18. 4. 2005       18 783×

8.1 Procedury
8.2 Vkládání a používání více formulářů
8.3 Používaní „Me“
8.4 With . . . a end with
8.5 CommonDialog – Barvy a Font
8.6 MSDN 8.7 Prvky na prolistování obsahu disku
8.8 Domácí úkol
8.9 V další lekci

8.1 Procedury

Procedury jsou velmi podobné funkcím, ale ve svém názvu nevracejí žádnou hodnotu, avšak vstupní parametry jim můžeme zadávat také. Stejně jako funkce je záhodno i vlastní procedury psát do modulů.  Můžeme je zapsat třemi způsoby:


Private Sub pozdrav()
  Form1.Print "ahoj"
End Sub

Sub pozdrav()
  Form1.Print "ahoj"
End Sub

Public Sub pozdrav()
  Form1.Print "ahoj"
End Sub

První je privátní funkce a je použitelná pouze ve formuláři nebo v modulu, ve kterém je zapsaná. Další dvě jsou potom veřejné a fungují globálně v celém programu. Pokud to vaše bystré oko nepostřehlo, tak zápis je prakticky stejný jako u funkcí. Pokud budeme používat proceduru, které chceme dát nějaké parametry, potom je zapisujeme stejně jako u funkcí. Rozdíl mezi použitím funkce tkví nejen v možnosti použít návratové hodnoty v jejím názvu, ale také v tom, že funkce se používá především pro výpočty a jednodušší operace, zatímco procedura se používá na kódy, které bývají mnohem delší, které pracují s objekty a velmi často také používají dalších funkcí. Tedy procedury v sobě mohou obsahovat ještě další volání funkcí. Naopak je to méně časté. Většina ostatních věcí je stejných jako u funkcí.

8.2 Vkládání a používání více formulářů

Formuláře se vkládají pomocí: Projekt > Add Project. Tím se zobrazí další formulář. Na ten můžete vkládat další objekty. Formulářů může být mnoho. Na každý můžete vkládat mnoho objektů. Formuláře si mezi sebou předávají proměnné pomocí globálních proměnných. Víc nic k tomu není. Všechno najdete v okně projektu.

8.3 Používaní „Me“ a

Me… Me se používá místo Form1, pokud s tímto formulářem právě pracujete - je aktuální. Pokud pracujete ve formuláři Form2, tak Me nahrazuje Form2. Použití:

Místo


Form1.Caption = "Program"

lze napsat:


Me.Caption = "Program"

Takže nám to trochu zjednodušší kód. Ale žádný zázrak to není.

8.4 With . . .  a End With

Tohle je trochu zajímavější a použitelnější. Pokud některému objektu upravujete víc vlastností nebo s ním pracujete ve větším rozsahu, tak je vhodné použití tohoto zápisu. Příklad uvedu opět na formulář:


With Form1 
  .Left = 100 
  .Top = 100
  .Height = 10000
  .Width = 10000
  .Caption = "Program"
End With

Takto vypadá kód ošetřený With a takto bez něj:


Form1.Left = 100
Form1.Top = 100
Form1.Height = 10000
Form1.Width = 10000
Form1.Caption = "Program"

Tedy ne že by to byla nějaká ohromná úspora kódu, ale program je potom mnohem přehlednější. Používání vřele doporučuji. To by bylo taky vše, myslím, že není potřeba říct nic víc.

8.5 CommonDialog – Barvy a Font

Věřte nevěřte, tato maličkost dokáže zjednodušit vaši práci. Obsahuje totiž pár dialogů, které byste jinak museli sami vytvářet jako samostatné formuláře a nejspíš by vám daly zabrat. Dokáže totiž zobrazit dialog pro výběr barvy fontu, dialog pro uložení a otevření souboru, můžete pomocí něj vybírat tiskárnu a zobrazovat help. Začneme Dialogem pro výběr barev. Než se do něj pustíme, tak potřebujeme na formulář vložit CommonDialog. Ale v ToolBoxu není, takže na ToolBox klikneme pravým tlačítkem myši a z nabídky vybereme Components… V okně Components, které se nám zobrazí, tak v záložce Controls vybereme ze seznamu Microsoft CommonDialog Control 6.0. Zaškrtneme CheckBox o něj a klikneme na OK. Tím se nám v ToolBoxu zobrazí jeho zástupce a my ho vložíme na formulář. Vložíme na něj také tlačítko, na tlačítko poklikáme a do procedury napíšeme, že po kliknutí se nám zobrazí CommonDialog, který nám dá možnost výběru barvy pozadí formuláře. Kód bude vypadat následovně:


Private Sub Command1_Click()
  CommonDialog1.ShowColor
  Form1.BackColor = CommonDialog1.Color
End Sub

Kliknete na tlačítko a kód CommonDialog1.ShowColor zobrazí CommonDialog pro výběr barev a čeká na vaši reakci. Poté, co vyberete nějakou barvu, se následujícím řádkem kódu přemístí do vlastnosti BackColor, což je barva pozadí. Pro ukázku ještě jednou na něčem jiném, třeba na našem tlačítku.


Private Sub Command1_Click()
  CommonDialog1.ShowColor
  Command1.BackColor = CommonDialog1.Color
End Sub

A nezapomeňte nastavit vlastnost tlačítka Style na Graphical. To je tak k barvám a teď se podíváme na fonty.

Zde je kousek kódu, který nám umožní výběr fontu, barvy, velikosti a dalších vlastností písma.


Private Sub Label1_Click()
  CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth
  CommonDialog1.ShowFont
  Label1.FontSize = CommonDialog1.FontSize
  Label1.FontBold = CommonDialog1.FontBold
  Label1.FontItalic = CommonDialog1.FontItalic
  Label1.FontStrikethru = CommonDialog1.FontStrikethru
  Label1.FontUnderline = CommonDialog1.FontUnderline
  Label1.FontName = CommonDialog1.FontName
  Label1.ForeColor = CommonDialog1.Color
End Sub

Tento kód nám po kliknutí na Label umožní změnit vlastnosti jeho písma, ale první řádek nás trochu zdrží. Obsahuje vlastně nastavení toho, co se má v CommonDialogu zobrazit a jak Flags znamená v překladu vlajka, ale to není důležité. Důležité je, že tato vlastnost nám umožňuje nastavit, co a jak se má zobrazit, nebo co a jak má být. Tento CommonDialog jako jediný musí mít Flag, aby se zobrazil. Zde jsou ale zapsány dva Flagy, první sice ne první, ale ten důležitější cdlCFBoth umožní načtení písem, a ten druhý cdlCFEffects zvětší možnosti nastavení písma. Oba jsou od sebe odděleny slovíčkem OR.  Těchto Flagů je mnohem víc, ale zabývat se jimi teď nebudeme. Pokud byste měli zájem a máte přístup k internetu, je dobré využít nápovědy MSDN. O ní se zmíním v další části kapitoly. Další vlastnosti CommonDialogu si popíšeme až časem, kdy je budeme potřebovat a kdy je budeme moci použít.

8.6 MSDN – Nápověda Online

MSDN - pokud jste šťastnými majiteli 2CD, na kterých je nápověda k celému Visual Studiu, tak jich můžete využít. Pokud k nim ale nepatříte, tak můžete využít nápovědy on-line. Adresa je: http://msdn.microsoft.com/vbasic/. Je tam prakticky vše, nevýhodou je angličtina. Je tam pole pro vyhledávání, do kterého stačí zadat klíčové slovo nebo sentenci, a povětšinou se podaří najít hledané. Je zde nápověda i pro ostatní jazyky Visual Studia. Tato nápověda může pomoci jak profesionálům a pokročilým, tak i začátečníkům. Ještě bych se chtěl vrátit k možnostem Flagů, protože není problém další Flagy najít na MSDN.

8.7 Prvky na prolistování obsahu disku

Dostáváme se do závěrečné části dnešní lekce a tu tvoří prvky k prolistování obsahu disku, k nim si přidáme ještě drobnou ukázku využití ImageBoxu, protože si uděláme prohlížeč obrázků. Není to nic složitého, stačí myslet. Tak se pusťme do myšlení a začněme rozebráním následujícího kódu. Prvky se jmenují  DriveListBox DirListBox a FileListBox. Každý z nich si po jednom umístíme na formulář, přidejte jeden ImageBox a jeden Label. Zapište následující kód.


Private Sub Dir1_Change()
  File1.Path = Dir1.Path 'pokud změníte složku
                         'tak se změní i obsah FileListBoxu
  Label1.Caption = File1.Path 'změna v obsahu ukazatele plné 
                              'cesty kterým je Label1
End Sub

Private Sub Drive1_Change()
  Dir1.Path = Drive1.Drive 'Vyberete mechaniku a tím 
                           'se změní obsah složek v 
                           'DirlistBoxu
  File1.Path = Dir1.Path 'A následně se změní i obsah 
                         'FileListBoxu
  Label1.Caption = File1.Path 'změna v obsahu ukazatele 
                              'plné cesty kterým je Label1
End Sub

Private Sub File1_Click()
  Image1.Stretch = True 'zapnte možnost ať se obrázek 
                        'přizpůsobí velikosti ImageBoxu
  Image1.Picture = LoadPicture(File1.Path & "\" & _ 
File1.FileName) 'Tímto zadáte celou cestu k 
                'obráku i se jménem souboru. 
'obrázek se načte do Image.
  Label1.Caption = File1.Path & "\" & _ 
File1.FileName 'změna v obsahu ukazatele plné cesty kterým 
                     'je Label1
End Sub

Private Sub Form_Load()
  File1.Pattern = "*.jpg; *.gif; *.bmp; _
 *.dib; *.wmf" 'Omezíte možnost výběru 
                    'složky pouze na tyto druhy 
                    'obrázků. Jiné Visual Basic 
                    'bez zvláštních knihoven 
                    'nepodporuje.
  Label1.Caption = File1.Path & "\" & _ 
File1.FileName 'načtete prvotní informaci do 
               'ukazatele cesty
End Sub 

To by byl kód jednoduchého prohlížeče obrázků. Zde je ukázáno využití prvků FileListBox, DirListBox a DriveListBox. Já osobně tyto prvky moc nedoporučuji a radil bych spíš využití CommonDialogu. Ušetříte si tak spoustu kódů. No ale už vás nehodlám zdržovat výkladem, tak se pustíme do domácího úkolu. Bacha na chybu, pokud se třeba přepnete na mechaniku E a nemáte v ní disk, tak vám to vyhodí chybu, ale o tom v příští lekci.

Ještě jsem téměř zapomněl, a tak se vrátím k funkci Pattern. Ta nám umožňuje zobrazovat pouze vybrané typy souborů. Můžeme jich použít i několik. Všechny jsou v jedněch uvozovkách a oddělují  se středníkem. Takto:

File1.Pattern = "*.jpg; *.gif; *.bmp; *.dib; *.wmf"

Můžeme použít i otazníky, které nahrazují každý jeden znak, anebo hvězdičky, které zastupují různý počet znaků. Třeba B*.??F je každý soubor, který začíná na B a jeho přípona je na tři písmena a končí na F.

8.8 Domácí úkol

Za domácí úkol bude vytvoření prohlížeče obrázků, ale nebude ledajaký. Zaprvé - pokud kliknete na Label, tak budete moci pomoci CommonDialogu změnit jeho barvu. Prvky se na formuláři rozmístí až po startu programu, a to pomocí procedury, kterou zavoláte z Form_Load tak, že když já si váš program pustím, tak uvidím prvky přesně tak rozmístěné, jako je máte vy. Budete si moci změnit barvu pozadí formuláře, a to též pomocí CommonDialogu.

8.9 V další lekci

CommonDialog pokračování, odchytávání chyb, barvy, datum a čas, reakce na stisknutí různých tlačítek myši nebo kláves a Pop up Menu.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

3 názory  —  3 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Jiří ChytilAutor programuje ve VB, zajímá se o elektrotechniku, studuje na SOŠ Elektrotechnické - obor číslicová technika.
Web    

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý