ZaΦßteΦnφk

PokroΦil²

Profesionßl

Prostor pro experimentovßnφ

Programßtorskß laborato°

 

Budete pot°ebovat p°ibli₧n∞ 1 hodinu

OperaΦnφ systΘm pou₧it² v p°φsp∞vku: Windows XP

V²vojovΘ nßstroje: Visual Basic .NET

 

 

 

Tvorba t°φdy

Sestrojenφ pr∙hlednΘho formulß°e

Ukßzka pou₧itφ ovlßdacφho prvku ToolTip

Ukßzka pou₧itφ ovlßdacφho prvku ErrorProvider

Vytvo°enφ p°etφ₧enΘ funkce

 

 

Tvorba t°φdy

 

V nßsledujφcφ ukßzce spoleΦn∞ vytvo°φme jednoduchou t°φdu, kterΘ bude obsahovat jednu metodu pro v²poΦet obsahu kruhu. Postupujte takto:

 

  1. Spus¥te VB .NET, v okn∞ pro v²b∞r novΘho projektu vyberte polo₧ku Class Library, projekt pojmenujte jako Trida_01, zatrhn∞te volbu Create directory for Solution a klepn∞te na tlaΦφtko OK.
  2. VB .NET vytvo°φ projekt p°φsluÜnΘho typu a otev°e pro vßs okno pro zßpis k≤du (obr. 1). á

 

 

Obr. 1 û K≤d t°φdy vygenerovan² Visual Basicem .NET

 

  1. Zm∞≥te jmΘno t°φdy na Kruh a jestli₧e chcete, m∙₧ete p°ejmenovat i soubor, ve kterΘm je programov² k≤d t°φdy ulo₧en. Standardn∞ mß tento soubor jmΘno Class1.vb.
  2. P°idejte do t°φdy deklaraci konstanty a k≤d pro metodu ObsahKruhu. V²slednou podobu k≤du t°φdy Kruh m∙₧ete vid∞t na obr. 2.

 

 

Obr. 2 û Finßlnφ podoba t°φdy Kruh

 

  1. Ulo₧te projekt a prove∩te jeho kompilaci, Φφm₧ vytvo°φte assembly ve form∞ DLL s k≤dem t°φdy.
  2. P°idejte ke stßvajφcφmu projektu nov² testovacφ projekt typu Windows Application (File>Add Project>New Project).
  3. Do testovacφho projektu p°idejte odkaz na assembly s t°φdou (Project>Add Reference). Klepn∞te na tlaΦφtko Browse a vyhledejte pot°ebnou assembly. á
  4. Umφst∞te na formulß° testovacφho projektu instanci ovlßdacφho prvku Button, kterou m∙₧ete nechat implicitn∞ pojmenovanou. Jejφ obsluhu udßlosti Click vypl≥te tφmto k≤dem:

 

ááááá Dim f As New Trida_01.Kruh()

ááááá MessageBox.Show(f.ObsahKruhu(10).ToString)

 

  1. V okn∞ Pr∙zkumnφka °eÜenφ klepn∞te prav²m tlaΦφtkem myÜi na jmΘno testovacφho projektu. Zßhy se objevφ kontextovΘ menu, ve kterΘm klikn∞te na polo₧ku Set as StartUp Project.
  2. Spus¥te projekt a klepn∞te na tlaΦφtko. V okn∞ se zprßvou se zobrazφ hodnota, kterß p°inßle₧φ obsahu kruhu, jeho₧ polom∞r je roven 10.

 

 

Pr∙hledn² formulß°

 

VB .NET obsahuje °adu nov²ch a doposud nevφdan²ch mo₧nostφ, mezi n∞₧ pat°φ takΘ vlastnost, dovolujφcφ vßm nastavit pr∙hlednost formulß°e. JmΘno tΘto vlastnosti je Opacity a m∙₧ete ji nalΘzt mezi standardnφmi vlastnostmi formulß°e v okn∞ Properties. PlatnΘ hodnoty pro uvedenou vlastnost se nachßzejφ v intervalu <0,1>, nebo, jestli₧e chcete, mezi 0 a 100 procenty. Hodnota 0 znamenß, ₧e formulß° je zcela neviditeln², zatφmco hodnota 1 p°edstavuje formulß° v jeho plnΘ krßse. Nastavφte-li hodnotu vlastnosti Opacity na 40 %, zφskßte podobu formulß°e, kterou zobrazuje obr. 3.

 

 

Obr. 3 û Pr∙hledn² formulß°

 

 

Pou₧itφ ovlßdacφho prvku ToolTip

 

Prost°ednictvφm ovlßdacφho prvku ToolTip m∙₧ete p°i°adit k dalÜφm ovlßdacφm prvk∙m, kterΘ jsou umφst∞ny na formulß°i okam₧itou nßpov∞du. Prvek ToolTip pat°φ mezi tzv. extender prvky, co₧ jsou prvky, kterΘ rozÜi°ujφ mo₧nosti jin²ch ovlßdacφch prvk∙. Instance prvku ToolTip se proto z uvedenΘho d∙vodu automaticky neumφstφ na plochu formulß°e, n²br₧ zaujme svΘ mφsto na podnosu komponent (obr. 4). V prostoru podnosu komponent se nachßzejφ prvky, je₧ nejsou vid∞t za b∞hu programu. Jakmile je ovlßdacφ prvek ToolTip p°idßn do projektu, ovlivnφ vlastnosti dalÜφch ovlßdacφch prvk∙ na formulß°i tφm, ₧e do jejich seznamu vlastnostφ v okn∞ Properties p°idß instanci svoji vlastnφ vlastnosti s nßzvem ToolTip on ToolTip1.

 

 

Obr. 4 û Ovlßdacφ prvek ToolTip

 

P°edpoklßdejme nynφ, ₧e se na formulß°i nachßzφ tlaΦφtko. Vyplnφte-li vlastnost tlaΦφtka ToolTip on ToolTip1 informaΦnφm textem, po spuÜt∞nφ projektu a umφst∞nφ kurzoru myÜi se po chvilce objevφ okam₧itß nßpov∞da (obr. 5).

 

 

Obr. 5 û Zobrazenφ okam₧itΘ nßpov∞dy pomocφ prvku ToolTip

 

Text pro okam₧itou nßpov∞du m∙₧ete dynamicky m∞nit i za b∞hu programu pomocφ programovΘho k≤du:

 

ToolTip1.SetToolTip(Me.Button1, _
"Chcete-li ulo₧it projekt, klepn∞te na toto tlaΦφtko")

 

 

Pou₧itφ ovlßdacφho prvku ErrorProvider

 

Ovlßdacφ prvek ErrorProvider je, podobn∞ jako prvek ToolTip, extender prvkem. Hlavnφ ·kol prvku ErrorProvider spoΦφvß ve vizußlnφm upozorn∞nφ u₧ivatele na vzniklou chybovou situaci. Dojde-li k chyb∞, kterou umφ prvek rozeznat, zobrazφ specißlnφ ikonu p°i tom ovlßdacφm prvku, s kter²m je integrovßn (jinak °eΦeno, kterΘho schopnosti rozÜi°uje). Umφstφ-li u₧ivatel kurzor myÜi nad vzpomφnanou ikonu, zobrazφ se text, identifikujφcφ vzniklou chybu. Pokud p°idßte prvek do projektu, ulo₧φ se na podnos komponent. Podobu ovlßdacφho prvku ErrorProvider m∙₧ete vid∞t na obr. 6.

 

 

Obr. 6 û Podoba prvku ErrorProvider na podnosu komponent

 

V nßsledujφcφm p°φkladu si ukß₧eme, jak integrovat prvek ErrorProvider s ovlßdacφm prvkem TextBox. Postupujte takto:

 

  1. P°idejte na formulß° textovΘ pole (Textbox1) a tlaΦφtko (Button1).
  2. Umφst∞te na podnos komponent ovlßdacφ prvek ErrorProvider.
  3. Podoba vaÜeho projektu by m∞la b²t podobnß tΘ z obr. 7.

 

 

Obr. 7 û Ukßzka podoby projektu

 

  1. Do obsluhy udßlosti Click tlaΦφtka Button1 p°idejte tento programov² k≤d:

 

ááááááá If Len(TextBox1.Text) = 0 Then

ááááááááááá ErrorProvider1.SetError(TextBox1, "Do textovΘho pole " & _

ááááááááááá "jste nezadali ₧ßdn² text.")

ááááááá Else

ááááááááááá ErrorProvider1.SetError(TextBox1, "")

áááá End If

 

Tento k≤d testuje, zda-li je textovΘ pole prßzdnΘ Φi nikoliv. V p°φpad∞, ₧e u₧ivatel nezadal do textovΘho pole v∙bec ₧ßdn² text, aktivuje se prvek ErrorProvider. Ten zobrazφ vedle textovΘho pole v²stra₧nou ikonu, kterß upozornφ u₧ivatele, ₧e n∞co nenφ v po°ßdku. Pokud u₧ivatel ukß₧e kurzorem na tuto ikonu, zobrazφ se informaΦnφ text, popisujφcφ danou chybu. V opaΦnΘm p°φpad∞, nenφ-li textovΘ pole prßzdnΘ, nestane se nic.

á

  1. Spus¥te projekt a klikn∞te na tlaΦφtko Button1 bez toho, abyste cokoliv zapisovali do textovΘho pole (obr. 8).

 

 

Obr. 8 û Ovlßdacφ prvek ErrorProvider v akci

 

Zadßte-li nynφ do textovΘho pole libovoln² textov² °et∞zec a klepnete-li potΘ op∞t na tlaΦφtko Button1, uvidφte, ₧e v²stra₧nφ ikona zmizφ.

 

V situacφch, ve kter²ch je nutnΘ upozornit u₧ivatele na vzniklou chybu p°φv∞tivou cestou, lze vhodn∞ vyu₧φt mo₧nostφ ovlßdacφho prvku ErrorProvider.

 

 

Vytvo°enφ p°etφ₧enΘ funkce

 

VB .NET vßm dovoluje vytvo°it tzv. p°etφ₧enΘ funkce. P°etφ₧enΘ funkce jsou funkce, kterΘ majφ stejnΘ jmΘno, ovÜem rozliΦnou signaturu (seznam parametr∙). Schopnosti p°etφ₧en²ch funkcφ mohli doposud vyu₧φvat jenom programßto°i C/C++, avÜak nynφ se podobnß mo₧nost nask²tß i vßm. P°etφ₧enφ funkce je velmi u₧iteΦnß technika, pomocφ kterΘ m∙₧ete snadno ävyrobitô sadu funkcφ se stejn²m jmΘnem, no odliÜn²mi vstupnφmi parametry. Zßpis p°etφ₧enΘ funkce s nßzvem Vypocet m∙₧ete vid∞t na nßsledujφcφ ukßzce k≤du:

 

Public Class Obsah

 

ááá Public Overloads Function Vypocet(ByVal stranaA As Integer) _

ááá As Long

ááááááá Return stranaA * stranaA

ááá End Function

 

ááá Public Overloads Function Vypocet(ByVal stranaA As Integer, _

ááá ByVal stranaB As Integer) As Long

ááááááá Return stranaA * stranaB

ááá End Function

 

End Class

 

V hlaviΦkßch obou funkcφ m∙₧ete vid∞t i modifikßtor Overloads, jen₧ indikuje, ₧e jde o p°etφ₧enou funkci. I kdy₧ je pou₧itφ tohoto modifikßtoru volitelnΘ, v k≤du jsem ho uvedl proto, aby bylo na prvnφ pohled viditelnΘ, ₧e mßme do Φin∞nφ s p°etφ₧enou funkcφ.

 

Jak si m∙₧ete vÜimnout, jsou zde definovßny dv∞ funkce. Prvnφ funkce je urΦenß na v²poΦet obsahu Φtverce, a proto p°ebφrß pouze jeden parametr. Druhß funkce ovÜem poΦφtß obsah obdΘlnφku, a z tohoto d∙vodu pracuje se dv∞ma vstupnφmi parametry.

 

Jestli₧e vytvo°φte instanci tΘto t°φdy, p°i v²b∞ru vhodnΘ varianty funkce Vypocet vßm pom∙₧e VB .NET prost°ednictvφm technologie IntelliSense (obr. 9).

 

 

Obr. 9 û V²b∞r p°etφ₧enΘ funkce

 

Klepnete-li v okn∞ okam₧itΘ nßpov∞dy na ikonu se Üipkou dol∙, objevφ se deklarace p°etφ₧enΘ podoby funkce Vypocet.

 

 

Jßn Hanßk