cool web a perfektni rs- Doporucuji

Monday, July 30, 2007

6. Zvolte Edit Names a upravte názvy přímo na formuláři nebo v okně vlastností.
7. V místní nabídce si všimněte užitečného příkazu Insert New, který umožňuje vkládat nové prvky
do již existujícího systému nabídek a Insert Separator, který usnadňuje vkládání oddělovačů skupin
prvků v nabídce.
8. Vyzkoušejte prázdný systém nabídek. Při běhu by horní část hlavního formuláře měla vypadat
zhruba takto:
9. Naprogramujte událostní procedury Click jednotlivých příkazů v nabídkách.
10. Prvky první nabídky stačí synchronizovat s odpovídajícími akcemi, které se vykonávají
v událostních procedurách jednotlivých tlačítek:
Public Sub mnuItemDodatPrachy_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuItemDodatPrachy.Click
btnPrachy_Click(sender, e)
End Sub
11. Prvky poslední nabídky jsou zařazené sice jen formálně, až ale budou uživatelé aplikaci testovat,
mohli byste je vyplašit, kdyby se po zvolení nějakého prvku z nabídky nic nedělo. Proto je vhodné
zařadit alespoň informativní zprávu.
Public Sub mnuItemOAplikaci_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuItemOAplikaci.Click
Messagebox.Show("Sorry, ještě to není hotovo")
End Sub

Labels:

Sunday, July 29, 2007

Druhá nabídka

v pruhu nabídek, Přizpůsobit, bude obsahovat tři příkazy. Jeden (Pozadí formuláře) pro zaplnění
podkladové plochy formuláře obrázkem, který si uživatel zvolí, druhý (Změnit písmo) pro změnu atributů
písma, které se používá pro zobrazení vylosovaných číslic. Třetím příkazem vyzkoušíte jiný způsob
obarvení číslic - uživatel si barvu vybere ve společném dialogovém okně Barva.
Třetí nabídka, Nápověda, bude obsahovat dva příkazy budoucí nápovědy aplikace. Tvorba nápovědy ale
přesahuje rozsah i účel této aplikace, proto se jí zabývat nebudeme, pouze připravíme nabídku pro budoucí
zobecnění prototypu. (Připomínám, že jistou nápovědu poskytují například vysvětlivky, které jsme probírali
při tvorbě textový polí formuláře parametrů).
4. Až budete hotovi s texty nabídek, změňte výchozí názvy na vypovídající. Klepněte na prvku
v pruhu nabídek a klepněte pravým tlačítkem myši. Zobrazí se místní nabídka, kterou vidíte na obrázku
na další straně.
5. Zkontrolujte, je-li formulář sdružen s daným objektem nabídky. Klepněte na formuláři pravým tlačítkem
myši a z místní nabídky zvolte Properties. Nastavte vlastnost Menu formuláře na MainMenu1.

Labels:

Pruh nabídek na hlavním formuláři

Seznámení s formuláři Windows ukončíme v této brožuře sestrojením systému nabídek pro hlavní formulář.
V mnoha ohledech se nabídky sestrojují analogicky jako místní nabídky. Držte se následující ho postupu.
1. Vraťte zpět jako startovací objekt projektu hlavní formulář.
2. V návrhovém zobrazení hlavního formuláře klepněte v soupravě nástrojů na tlačítko WinForms,
pak na nástroj MainMenu a klepněte na formuláři.
Pod formulářem se objeví podnos a v něm ikona ovládacího prvku s výchozím názvem MainMenu1.
Zároveň se pod titulkovým pruhem formuláře budou objevovat chlívky s napovídajícím titulkem „Type
Here“ (Piš sem).
3. Do těchto chlívků napište texty, které se mají zobrazovat v nabídce. Jednotlivé příkazy budoucích
rozvíracích nabídek pište do chlívků pod daný prvek v pruhu nabídek, tedy pod sebe. Chcete-li
rovnou v textech určit přístupové klávesy, napište před zvolené písmeno znak & (na české klávesnici
pravý Alt+C).
První nabídku, která odpovídá tlačítkům na formuláři, vidíte na obrázku na příští straně.

Labels:

Thursday, July 26, 2007

Místní nabídku sdružíte

s formulářem tím, že její název nastavíte jako hodnotu vlastnosti ContextMenu
formuláře. Prvky v nabídce mohou být též neviditelné (vlastnost Visible má hodnotu False) nebo nepřístupné
(vlastnost Enabled má hodnotu False). Jednotlivé prvky nabídky je třeba zařadit metodou Add do odpovídající
kolekce MenuItems.
Výpis výše představuje mírnou modifikaci předchozí nabídky sestrojené vizuálně. Obsahuje navíc prvek
nabídky typu „oddělovač prvků“. Takový prvek přidáte do nabídky tím, že jeho vlastnost Text nastavíte na
pomlčku (-). Modifikovaná místní nabídka vypadá takto:
Náměty na procvičování. Místní nabídky mohou být dynamické, čímž se rozumí to, že se jejich obsah
dynamicky mění při běhu (přidáváte nové příkazy, měníte texty, přístupnost, viditelnost prvků atp.). Zkuste si
takovou nabídku sestrojit. Chcete-li mít například různé místní nabídky podle toho, na kterém ovládacím prvku
uživatel právě klepl pravým tlačítkem myši, využijte k identifikaci tohoto ovládacího prvku vlastnost ActiveControl
formuláře a rozhodovací konstrukce zařaďte do událostní procedury Popup objektu místní nabídky.

Místní nabídka sestrojená v kódu

Místní nabídku můžete také celou sestrojit z kódu, aniž na podnos formuláře umístíte instanci komponenty
ContextMenu. Například:
Dim ContextMenu2 As New ContextMenu()
' Přiřazení místní nabídky formuláři:
Me.ContextMenu = ContextMenu2
' Vytvoření prvků nabídky:
Dim cmnu2ItemZvuky As New MenuItem()
Dim cmnu2ItemOddělovač1 As New MenuItem()
Dim cmnu2ItemPokračovat As New MenuItem()
Dim cmnu2ItemKonec As New MenuItem()
' Přiřazení hodnot vlastnostem prvku Blikání a zvuky:
' Text příkazu v nabídce:
cmnu2ItemZvuky.Text = "&Blikání a zvuky?"
' Bude mít zaškrtnutí:
cmnu2ItemZvuky.Checked = True
' Bude viditelný:
cmnu2ItemZvuky.Visible = True
' vytvoření oddělovací čáry:
cmnu2ItemOddělovač1.Text = "-"
cmnu2ItemOddělovač1.Visible = True
' Přiřazení hodnot vlastnostem prvků Pokračovat a Konec:
cmnu2ItemPokračovat.Text = "&Pokračovat"
cmnu2ItemPokračovat.Visible = True
cmnu2ItemKonec.Text = "&Konec"
cmnu2ItemKonec.Visible = True
' Přiřazení klávesové zkratky:
cmnu2ItemPokračovat.Shortcut = System.WinForms.Shortcut.CtrlP
cmnu2ItemKonec.Shortcut = System.WinForms.Shortcut.AltF4
' Přidání prvků do kolekce MenuItems:
ContextMenu2.MenuItems.Add(cmnu2ItemZvuky)
ContextMenu2.MenuItems.Add(cmnu2ItemOddělovač1)
ContextMenu2.MenuItems.Add(cmnu2ItemPokračovat)
ContextMenu2.MenuItems.Add(cmnu2ItemKonec)

Labels:

Tuesday, July 24, 2007

7. První příkaz v nabídce je vlastně dvouhodnotový přepínač, který má měnit stav zaškrtávacího políčka.
Protože má být výchozí stav „zaškrtnuté“, nastavte vlastnost Checked prvku cmnuItemZvuky
na True.
8. Chcete-li některým prvkům v nabídce přiřadit klávesovou zkratku, nastavte jejich vlastnost Short-
Cut. Klepněte vpravo od vlastnosti v okně Properties a kombinaci kláves vyberte z dostupných
možností v rozvíracím seznamu. Zda bude klávesová zkratka zobrazena jako součást textu nabídky
určíte hodnotou vlastnosti ShowShortCut.
9. Než začnete prvkům nabídek přiřazovat činnosti, bývá vhodné vyzkoušet prázdný návrh. Spusťte
aplikaci a klepněte pravým tlačítkem myši na zobrazeném formuláři. Uvidíte místní nabídku podobnou
té, která je zobrazena vlevo dole.
Klepnete-li pravým tlačítkem myši na některém textovém poli, zobrazí se ale výchozí místní nabídka
s příkazy pro práci se schránkou. Také textová pole mají totiž vlastnost ContextMenu a pokud ji explicitně
nenastavíte, mají výchozí hodnotu (none).
10. Napište událostní procedury Click jednotlivých prvků nabídek. Například pro zapnutí/vypnutí
efektů:
Public Sub cmnuItemZvuky_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cmnuItemZvuky.Click
chkCingrlátka.checked = Not chkCingrlátka.checked
End Sub
nebo pro tlačítko Pokračovat:
Public Sub cmnuPokračovat_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cmnuPokračovat.Click
btnPokračovat_Click(sender, e)
End Sub

Labels:

R o z š í ř e n í p r o t o t y p u ( 3 ) – n a b í d k y

Jednotlivé prvky nabídky tvoří objekty MenuItem a dostávají výchozí názvy MenuItem1, MenuItem2
atd. Protože budete později programovat událostní procedury těchto prvků (abyste příkazu
v nabídce přiřadili nějakou konkrétní činnost), je žádoucí změnit tyto výchozí názvy (jako se to ostatně
má dělat u všech ovládacích prvků, s nimiž hodláte nějak pracovat) na lépe vypovídající.
5. Klepněte na některém prvku v nabídce, klepněte pravým tlačítkem myši a z místní nabídky zvolte
Edit Names. (Obrázek této místní nabídky viz příští oddíl „Pruh nabídek na hlavním formuláři“.)
Na formuláři se objeví výchozí názvy v hranatých závorkách vlevo od textů prvků nabídek.
6. Přejmenujte názvy prvků nabídek podle vašich dohodnutých konvencí. Lze to udělat přímo na
formuláři nebo v okně vlastností, podobně jako u jiných ovládacích prvků. U prvku, který je nabídkou,
se obvykle používá předpona mnu, cmnu apod., u ostatních prvků nabídky se přidává slovo
Item (prvek), pak vlastní název.

Labels:

Monday, July 23, 2007

Místní nabídka na formuláři parametrů

Seznámení s nabídkami začneme cvičnou místní nabídkou na formuláři parametrů, protože se jedná
o jednodušší úlohu. Držte se následující ho postupu.
1. Abyste mohli formulář parametrů pohodlně ladit, prohlásíte ho opět dočasně za startovací objekt
projektu. Nevidíte-li průzkumníka řešení, zvolte View > Solution Explorer, klepněte pravým tlačítkem
myši na název projektu, z místní nabídky zvolte Properties, vyberte ze seznamu Startup object
formulář frmZadáníParametrů a klepněte na OK.
2. V návrhovém zobrazení formuláře parametrů klepněte v soupravě nástrojů na tlačítko WinForms,
pak na nástroj ContextMenu a klepněte na formuláři.
Pod formulářem se objeví podnos a v něm ikona ovládacího prvku s výchozím názvem ContextMenu1.
Zároveň se pod titulkovým pruhem formuláře budou objevovat chlívky s napovídajícím titulkem
„Type Here“ (Pište sem).
3. Do těchto chlívků napište texty, které se mají zobrazovat v nabídce. Jednotlivé příkazy budoucí
místní nabídky pište jako prvky pruhu nabídek, ne pod sebe. Chcete-li rovnou v textech určit přístupové
klávesy, napište před zvolené písmeno znak & (na české klávesnici pravý Alt+C).
Nastavujete vlastně hodnoty vlastnosti Text jednotlivých prvků v nabídce. Kdybyste psali texty pod
sebe, vytvářeli byste systém místních nabídek, což je také možné, ale v této úloze chceme sestrojit
prostou místní nabídku tří příkazů. Viz obrázek na další straně.
4. Klepněte pravým tlačítkem myši na formuláři, klepněte na Properties a nastavte vlastnost ContextMenu
formuláře na ContextMenu1.

Labels:

Friday, July 20, 2007

Rozšíření prototypu (3) – nabídky

Naše aplikace v podstatě žádné nabídky nepotřebuje, protože pro její řízení stačí uživateli příkazová tlačítka
na formulářích. Nabídky však patří mezi základní a často vyžadované prvky uživatelského rozhraní.,
proto jsem považoval za vhodné, zařadit do této brožury také úvodní seznámení s tím, jak se ve Visual Basic.
NET tvoří nabídky a místní nabídky. Panely nástrojů, stavové řádky a další uživatelský komfort už do
aplikace dávat nebudeme, už tak toho bude v podstatě příliš. Ukážeme si vizuální sestrojení nabídek
i vytvoření nabídek přímo v kódu.
Visual Basic.NET poskytuje v soupravě nástrojů pro tvorbu nabídek dva ovládací prvky: MainMenu
a ContextMenu. Pomocí prvního z nich se tvoří obvyklý systém nabídek složený z pruhu nabídek, pod nímž
se rozvinují podřízené nabídky. Druhý slouží k tvorbě místních nabídek.
VB6. Dříve se nabídky tvořily nástrojem Menu Editor. Místní nabídky se sestrojovaly jako
neviditelné součásti systému běžných nabídek. Místní nabídka se pak obvykle aktivovala
v událostní proceduře zachycující stisk tlačítka myši, kde se pomocí prvního parametru událostní
procedury odlišil stisk pravého tlačítka myši a nabídka se zobrazila metodou Popup
formuláře.

Labels:

Tuesday, July 17, 2007

S tím souvisí ještě jedna drobná změna, která by mohla dělat programátorům
z dřívějších verzí potíže. Jsou tací, kdo místo logických hodnot psali čísla a spoléhali se na
implicitní konverze. Patříte-li mezi ně, určitě ve VB.NET narazíte, protože se reprezentace
hodnoty True změnila z –1 na 1.
Obdobný problém se týká data. I když se v této brožuře zabýváme datem jen okrajově
(v titulkovém pruhu aplikace), může být tato změna nepříjemná, proto se o ní alespoň zmiňuji.
Pokud jste byli zvyklí ukládat datum ne jako Date, ale jako čísla Double, budete mít
smůlu, protože se datum už ukládá jinak a kód budete muset upravit. Buď pomocí speciálních
převodních funkcí ToOADate resp. FromOADate, ale raději kód přepište tak, abyste důsledně
pro hodnoty obsahující datum důsledně používali příslušný datový typ.

Labels:

Sunday, July 15, 2007

Využití zaškrtávacího políčka formuláře parametrů

Zapojení zaškrtávacího políčka formuláře parametrů je velmi jednoduché. Prostě otestujete jeho vlastnost
Checked. Efekty (nebo jiné činnosti) se budou vykonávat jen tehdy, je-li políčko zaškrtnuté, neboli, je-li jeho
vlastnost Checked nastavena na True.
Public Sub Form1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Form1.Click
If f.chkCingrlátka.Checked Then
' Vypnutí efektů
End If
End Sub
Poznámka. Nezkrácený zápis podmínky v konstrukci If má tvar:
If f.chkCingrlátka.Checked = True Then

Labels:

Dále si všimněte, jak se testuje návratová hodnota metody MessageBox.Show (tj. na kterém tlačítku
uživatel klepl v okně zprávy). Jedná se o výčtový typ DialogResult (opět z pojmenovaného prostoru
System.WinForms).
Jestliže uživatel nechce pokračovat, ukončení aplikace nemusíte programovat znovu, ale simulujete
situaci, že uživatel klepl na tlačítko Konec. Zavoláte prostě tuto událostní proceduru.
4. Napište událostní proceduru Click tlačítka s nápisem Dodat další prachy:
Public Sub btnPrachy_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnPrachy.Click
' Me.Hide()
f.ShowDialog()
lblKredit.Text = f.txtKredit.text
lblSázka.Text = f.txtSázka.Text
' Me.show()
End Sub
Událostní procedura tohoto tlačítka na hlavním formuláři tedy hráči umožňuje, aby kdykoli zvýšil stávající
kredit (i když zatím předchozí nevyčerpal) a (nebo) změnil výši sázky a (nebo) zapnul či vypnul multimediální
efekty.

Labels:

Friday, July 13, 2007

If CInt(lblKredit.Text) <= 0 Or _
CInt(lblKredit.Text) < CInt(lblSázka.Text) Then
' Me.Hide()
If DialogResult.Yes = MessageBox.Show _
("Je mi líto, musíte dodat další prachy. Chcete hrát dál?", _
"Zpráva o stavu financí", _
MessageBox.IconQuestion + Messagebox.YesNo) Then
f.ShowDialog()
lblKredit.Text = f.txtKredit.text
lblSázka.Text = f.txtSázka.Text
' Me.Show()
Else
btnKonec_click(sender, e)
End If
End If
Považujete-li to za účelné, můžete pomocí metody Hide dočasně hlavní formulář skrýt, abyste zdůraznili,
že je nutné dodat další peníze. Po dokončení prací na formuláři parametrů byste pak hlavní
formulář opět zobrazili metodou Show.
V příkazu, který zobrazuje zprávu, si všimněte, jak se v třetím parametru specifikuje více informací
současně (zde se konkrétně má zobrazit ikona otazníku a tlačítka s nápisy Ano a Ne. Jedná se o pole
třídy MessageBox.

Thursday, July 12, 2007

Propojení formulářů

Formuláře Windows, které v této brožuře vytváříte, mohou být modální nebo nemodální. Co to znamená?
Když pracujete s modálním formulářem a chcete dělat něco jiného, musíte jej nejprve uzavřít (skrýt nebo
uvolnit z paměti), teprve pak můžete pracovat s jinou částí aplikace. Mnoho modálních formulářů znáte.
Chová se tak valná většina dialogových oken běžných aplikací Windows, s nimiž pracujete. Modální formuláře
mají pro programátora jednu podstatnou výhodu, nemusí ošetřovat situace, že uživatel z čista jasna práce
s formulářem přeruší a začne dělat něco jiného.
Takové jsou právě nemodální formuláře. Typickým příkladem nemodálních formulářů jsou panely nástrojů.
Chcete-li formulář zobrazit jako modální, zavolejte metodu ShowDialog, jinak zavolejte metodu Show.
Hlavní formulář a formulář parametrů, které jsme zatím testovali izolovaně, nyní propojíme tak, že spouštěcím
formulářem bude opět hlavní formulář, při jehož startu (nebo později kdykoli uživatel klepne na tlačítko
s nápisem Dodat další prachy) se zobrazí formulář parametrů jako dialogové okno. Postup:
1. Přejděte do okna kódu hlavního formuláře a do třídy Form1 přidejte nad všechny procedury deklaraci:
Private f As frmZadáníParametrů = New frmZadáníParametrů()
2. Na konec konstruktoru New() formuláře Form1 přidejte příkazy:
f.showdialog()
lblKredit.Text = f.txtKredit.Text
lblSázka.Text = f.txtSázka.Text
Jak předchozí výpis ukazuje, hodnoty, které uživatel zapsal do textových polí, jsou přístupné jako
hodnoty vlastností formuláře, jehož instanci jste vytvořili.
3. Do procedury Click tlačítka s nápisem Roztočit přidejte konstrukci If…End If, v níž otestujete,
zda hráč nevyčerpal kredit, který zadal na počátku aplikace. Jestliže ano, zobrazí se mu dotaz, zda
chce hrát dál. Výpis konstrukce je uveden na příští stránce.

Labels:

Tuesday, July 10, 2007

Vlastní ovládací prvek jako výchozí šablona pro obě textová pole

Protože obě textová pole na formuláři jsou si podobná v tom ohledu, že mají stejné některé důležité charakteristiky
(přijímají jen čísla, text se objevuje zprava), nabízí se otázka, zda by nebylo možné vytvořit pro
ně jakousi šablonu, z níž by byly obě textová pole na našem formuláři parametrů odvozena. Jedním ze způsobů,
jak to lze udělat, a to dokonce vizuálně, je vytvořit v projektu vlastní ovládací prvek. Postupuje se zhruba
takto:
1. V průzkumníkovi řešení vyberte položku s názvem projektu.
2. Vydejte příkaz Project > Add User Control.
3. V dialogovém okně Add New Item vyberte vpravo ikonu UserControl, do pole Name napište název
svého ovládacího prvku, například ČíselnýTextBox a klepněte na Open.
4. Dostanete se do prostředí návrháře vlastních ovládacích prvků (podkladová plocha jako u formuláře,
ale bez jakýchkoli okrajů či titulkového pruhu).
5. Klepněte v soupravě nástrojů na ovládací prvek TextBox a klepněte na podkladové ploše návrhu
vlastního ovládacího prvku.
6. Nastavte tyto vlastnosti ovládacího prvku s výchozím názvem TextBox1: Text na 0, TextAlign na
Right a Location na 0,0 (tím ho dostanete k levému hornímu okraji podkladové plochy).
7. Nastavte jakékoli další vlastnosti textového pole podle svých potřeb a případně naprogramujte
událostní procedury, jimiž chcete dále ovlivnit chování vlastního ovládacího prvku.
8. Nastavte vlastnost Size vlastního ovládacího prvku na stejnou hodnotu, jakou má vlastnost Size
textového pole.
9. Sestrojte si druhou variantu formuláře parametrů – stejnou jako původní, ale bez textových polí
(nebo z původního formuláře parametrů textová pole odstraňte).
10. Zvolte Build > Rebuild.
11. Otevřete návrh formuláře parametrů, klepněte v soupravě nástrojů na svůj nástroj ČíselnýTextBox
a klepněte na formuláři. Opakujte pro druhé textové pole.
Poznámka. Chcete-li modifikovat vlastnosti ovládacích prvků odvozených z vlastního ovládacího prvku,
nastavte jeho vlastnost Modifiers na Public.
Náměty k procvičování. Logickým pokračováním při práci s vlastními ovládacími prvky je, že si vytvoříte
vlastní knihovnu ovládacích prvků. Opět to jde vizuálně a v podstatě stačí dva kroky. Přidáte do řešení
nový projekt patřičného typu a nastavíte odkazy.
V řadě úloh se hodí, když se vlastní ovládací prvek skládá z více prvků. Například, v našem případě by
byl jednoduchým zobecněním vlastní ovládací prvek složený ze dvou textových polí, do nichž se zadává nějaký
interval hodnot (od – do). Součástí ovládacího prvku by pak mohly být i veškeré potřebné kontroly platnosti
a souvztažnosti hodnot.

Labels:

Monday, July 09, 2007

Náměty na procvičování.

Zdokonalte kontroly platnosti. Je to typ úloh, v nichž se dá vyřádit téměř do
nekonečna. Například, zamezte vůbec uživateli, aby mohl do textových polí zapsat něco jiného než číslice
(například pomocí událostní procedury reagující na jednotlivé úhozy z klávesnice). Pak budou testy na to, zda
uživatel zadal číslo a na jiné neplatné zápisy, zbytečné a budete je moci z formuláře vyhodit. Nebo, za předpokladu,
že je zadaná hodnota kreditu přijatelná a sázka je uvedena špatně, nabídněte hráči sázku jako nějaký
zlomek kreditu (například desetinu), a to hned, jakmile se pokusí opustit textové pole txtSázka (nikoli až při
klepnutí na tlačítko Pokračovat).

Labels:

Friday, July 06, 2007

Skutečnost,

že se už nepodporuje klíčové slovo Null, možná nepříjemně zasáhne ty programátory
Visual Basicu, kteří se zabývají databázemi. Nemohou totiž využívat tzv. „propagace
Null“, které znamená, že se ve výrazech může používat „neplatná hodnota“ Null a že výsledek
takového výrazu bude Null. Hodnotu Null mají totiž ta pole záznamů databázových tabulek,
do nichž ještě nebyla pořízena hodnota. Výrazy tohoto druhu se už tedy nemohou
používat (ani vestavěné řetězcové funkce končící dolarem, které mohly vracet Null). Jestliže
jste takové výrazy používali, budete muset kód přeprogramovat a vždy předem testovat databázová
pole na to, zda neobsahují Null.

Tuesday, July 03, 2007

Ve Visual Basicu se určité informace získávají pomocí vestavěných funkcí, jejichž názvy začínají na
„Is“. Konkrétně IsNumeric umožňuje zjistit, zda je hodnota, předaná jako parametr, číselného typu. Jestliže
je tedy v některém z textových polí něco jiného než číslo, vypíše se uživateli aplikace okno ze zprávou:
Obdobná zpráva se zobrazí, pokud je velikost sázky větší než kredit nebo když uživatel zadá nekladnou
velikost.
V obou případech se vstup uživatele zlikviduje a do textových polí se mu nabídnou výchozí hodnoty..
Kód dále připomíná ještě jednu akci, která se v praxi často potřebuje-totiž jak aktivovat daný ovládací prvek
(umístit do něho kurzor, udělit mu fokus). Udělá se to velmi jednoduše. Zavolejte metodu Focus daného
ovládacího prvku.
Pro případ, že by uživatel zadal nějaké haléře nebo ještě menší zlomky, převedou se ve větvi Else zadaná
čísla na celá.
Volání metody Me.Close() má stejný efekt, jako kdyby uživatel klepl na tlačítko Zavřít (x) v pravém
horním rohu formuláře.
VB6. Místo matematických funkcí se nyní používají metody třídy Math pojmenovaného prostoru
System. Místo metody Focus se dříve volala metoda SetFocus.
Všechny funkce začínající na „Is“ se už nepodporují. Jak už jsem uvedl výše, nepodporuje se
IsMissing, protože je zbytečná (volitelné parametry musejí mít výchozí hodnoty). Dále se
nepodporuje IsEmpty. Místo IsNull a IsObject se používají IsDBNull resp. IsReference
ze třídy Microsoft.VisualBasic.Information. Klíčová slova Empty a Null se
už totiž také nepodporují a místo nich se používá Nothing. I když slovo Null nemá ve
VB.NET žádné použití, přesto ještě patří mezi rezervovaná slova.

Labels:

Sunday, July 01, 2007

Ověření platnosti pořízených hodnot

Aby uživatel nemohl zadat do textových polí nesmysly, což by komplikovalo další běh aplikace, přidáte
do formulář nějaký kód, který zadané hodnoty ověří. Nechcete-li se s tím příliš párat, v podstatě stačí, když
veškeré kontroly provedete jen tehdy a až tehdy, když uživatel klepne na tlačítko Pokračovat (tlačítkem Konec
má možnost uživatel aplikaci okamžitě ukončit, pro případ, že by si hraní v posledním okamžiku rozmyslel).
Protože hodnoty zadané do textového pole jsou svou povahou řetězce, mělo by se otestovat, zda uživatel
zapsal číslo a zda je kredit větší než částka (nemůžete hrát o víc peněz než máte v peněžence). Událostní procedura
Click tlačítka s názvem btnPokračovat by proto mohla vypadat takto:
Public Sub btnPokračovat_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnPokračovat.Click
If Not IsNumeric(txtKredit.Text) Or Not IsNumeric(txtSázka.Text) Then
' Následující dva řádky tvoří jediný příkaz
MessageBox.Show("Kredit a sázka musejí být čísla. Automat Vám nabídne výchozí
hodnoty.", "Chyba v zadání", MessageBox.IconExclamation)
txtKredit.Text = "1000"
txtSázka.Text = "10"
TxtKredit.Focus()
ElseIf Val(txtKredit.Text) < Val(txtSázka.Text) Or Val(txtSázka.Text) <= 0 Then
' Následující tři řádky tvoří jediný příkaz
MessageBox.Show("Sázka musí být číslo větší než nula a menší než Kredit.
Automat Vám nabídne výchozí hodnoty.", "Chyba v zadání", MessageBox.
IconExclamation)
txtKredit.Text = "1000"
txtSázka.Text = "10"
TxtKredit.Focus()
Else
txtKredit.Text = CStr(System.Math.Abs(CInt(txtKredit.Text)))
txtSázka.Text = CStr(System.Math.Abs(CInt(txtSázka.Text)))
Me.Close()
End If
End Sub

Labels: