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

VB - 29. lekceVB - 29. lekce

 

VB - 29. lekce

Google       Google       22. 9. 2005       10 709×

29.1 Používání systémové schránky
29.2 Form Unload
29.3 Hledání Chyb a odlaďování programů
29.4 Jak na chyby pomocí objektu Debug
29.5 GoSub … Return
29.6 Domácí úkol
29.7 V další lekci

Reklama
Reklama

29.1 Používání systémové schránky

Ukážeme si, jak používat systémovou schránku. Budeme potřebovat objekt clipboard. A následující kód bude vypadat takto:


Private Sub Command1_Click()
    Clipboard.SetText Text1.SelText
End Sub

Private Sub Command2_Click()
    Print Clipboard.GetText
End Sub

Jelikož už jste došli až sem, nemusím snad vysvětlovat úplně vše. Jen to, že první příkaz slouží k vložení dat do schránky a druhý k jejich vybrání, tedy spíše použití. Schránku mažeme takto:


Private Sub Command3_Click()
    Clipboard.Clear
End Sub

To by bylo to, co jsem vám chtěl nabídnout o schránce.

29.2 Form Unload

Tohle je elegantnější a čistší metoda ukončení programů než End, proto ji vřele doporučuji používat. Formulář se s použitím tohoto výrazu vymaže z paměti.

29.3 Hledání Chyb a odlaďování programů

Především bych se chtěl všem účastníkům kurzu omluvit, že s takto důležitou věcí přicházím tak pozdě. Ale teď je čas to napravit, tak doufám, že to napravím i s úroky. Oprava, hledání chyb ani krokování programu není žádná věda, jen to chce vědět, jak na to. A to byste se měli dozvědět právě tady.

Oprava nebo spíše schopnost opravovat a odhalovat chyby je spíše záležitostí tréninku nebo znalosti jazyka samotného a jeho syntaxe. Přesto je důležité znát základní principy hledání chyb. Proto se podíváme na první způsob,jak toho dosáhnout. Je to velmi účinné krokování programu. Dovoluje nám prohlédnout si v jednotlivých krocích obsahy proměnných, stavy různých komponent a podobně. Tento způsob je nejběžnější. A jak na něj? Určitě jste si všimli že před každým řádkem kódu je taková šedá plocha a pokud na ni kliknete, tak se vám celý řádek označí tmavou červenou. Pokud je řádek takto označen a spustíte program, program přes něj nepřejde ale zastaví se na něm a vy si můžete prohlédnout zdrojový kód. Tím že podržíte kurzor nad nějakou proměnou se zobrazí její hodnota. Takto můžete označit takovou část kódu jakou potřebujete a postupně ji krokovat. Pokud se vám průběh programu zastaví u vámi označeného řádku (breakpointu) a vy chcete pokračovat dál, stiskněte tlačítko, kterým program spouštíte.

Další možností, jak zjistit hodnoty proměnných, je okno Watch Window. Toto okno si zobrazíte přes menu View a vněm si vyberete Watch Window. Pokud kliknete do nového okna pravým tlačítkem, zobrazí se vám pop-up menu, v něm vyberete „Add watch…“. Zobrazí se vám dialogové okno, ve kterém si vyberete proceduru a proměnnou, kterou chcete sledovat a typ jejího sledování. Ale my se tomuto oknu zatím věnovat nebudeme. My si proměnou do tohoto okna přidáme tak, že ji označíme myší a přetáhneme do okna Watch Window. Nyní na vybranou sledovanou proměnou klikneme pravým tlačítkem, objeví se nám pop-up menu, na něm si vybereme, kdy chceme proměnné sledovat. Ve spodní části jsou tři OptionButtony. Zde si můžete vybrat, kdy se má ona proměnná zvýraznit. Takže si to vyzkoušejte.

Pak je zde možnost krokovat kód aniž byste museli všechno označovat, jak se u nás říká - knedlíkama (ty červené tečky). Tuto možnost nejdete v menu Debug pod názvem Step into. Nebo stisknutím F8. Tak, teď byste měli znát základní principy opravy chyb. Už to chce jen trénovat a sbírat zkušenosti. S každou nalezenou chybou pro vás bude jednoduší najít tu další. Tak se můžete těšit třeba na půlhodinové hledání chybičky, které není nijak výjimečné.

Snad jen dodat, že se říká: "Nelze udělat program bez chyby a při opravě chyby do programu minimálně další jednu zaneseme.". Samozřejmě to není stoprocentní, ale většinou to tak je.

29.4 Jak na chyby pomocí objektu Debug

První možností jak tento objekt využít, je tisknout si pomocí něj hodnoty proměnných do okna Immediate a tím můžete jednoduše hledat chyby v obsahu proměnných. Příkaz potom vypadá takto:


Debug.Print x

Nebo je tu druhá možnost a tou je podmíněné přerušení programu. Pokud je podmínka splněna, program pokračuje ve své činnosti, pokud podmínka splněna není, program se přeruší. Kód bude vypadat takto:


Debug.Assert x < 24

Podmínka za Debug.Assert může být samozřejmě libovolná. Věřím, že toto vám velmi usnadní práci při odchytávání chyb.

29.5 GoSub … Return

Používání GoSub a příkazů s podobnou funkcí se datuje od samých začátků programování. A pokud mě mé znalosti nešálí podobnou konstrukci nalezneme i v Assembleru. Část kódu v proceduře označenou návěstím. S návěstím jsem se setkali při ošetřování chyb, je to nějaký název zakončený dvojtečkou. Ale nebudu vám to tu suše vykládat a ukážu vám to na příkladu.


Private x As Long
Private Sub Form_Click()
   GoSub Soucet 'Odešle nás na návěstí
   Print x 'Vytisknutí "x" na formulář
   Exit Sub 'Ukončení procedury
   
Soucet: 'Název návěstí
   x = x + 3 'přičtení trojky
   Return 'návrat na řádek pod GoSub Soucet
End Sub

Vím že tohle není zrovna vhodný příklad, ale bohatě postačí na to, abyste pochopili, jak to funguje. Tato konstrukce je dnes v jazyce Visual Basic využívána spíše výjimečně. Proto se jí nehodlám více zabývat. A pokud ji nebudete ovládat, nic závažného se nestane.

29.6 Domácí úkol

Co nějakou malou encyklopedii, která využívá formulářů MDI? Čím víc - tím líp. Zde už přecházím na hodnocení zpracování projektu jako takového, kód už by měl být poměrně kvalitní, proto jeho kontrole budu věnovat stále nižší pozornost. Ale jestli mi to spadne, tak to jednička nebude. Dosud jste tvořili relativně jednoduché programy, které nebyly příliš náchylné na vstupy uživatele. Teď se to začne pomalu měnit. A vy budete muset reagovat na více a více chyb a snažit se je buď odstranit nebo využít ve svůj prospěch. Možnost využití chyby v prospěch svůj je nádhernou záležitostí a dá se z ní mnoho vytěžit.

29.7 V další lekci

Tak tohle je pro několik lekcí poslední lekce tohoto typu, teď budou následovat lekce, ve kterých budou abecedně řazeny funkce, příkazy, klíčová slova a další. Tím by se vám, stejně jako s každou lekcí, měly otevřít nové možnosti. Každá lekce bude obsahovat mnoho záležitostí, se kterými jsme se doposud nesetkali a nemělo by jich být málo, ale na druhou stranu se v nich budou objevovat i věci již známe, ale co, opakování je matka moudrosti, ne?

×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.

1 názor  —  1 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 Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý