Archív Inet.sk Pôvodný autor: Peter Hrdlica
18. 02. 2010 o 08:45 4325x

Visual Basic.NET – 5. diel

Dnes sa pozrieme na podmienenú štruktúru Select Case (switch = prepínač) a základnú prácu s ovládacím prvkom PictureBox. A samozrejme nebude chýbať obrazová dokumentácia.
Visual Basic.NET – 5. diel

Úvod

            Dobrý deň. Dnes sa pozrieme na podmienenú štruktúru Select Case (switch = prepínač) a základnú prácu s ovládacím prvkom PictureBox. Dúfam, že sa opäť dozviete niečo nové a zaujímavé. Prajem príjemné čítanie.

Select Case .. Case .. End Select – Keď nie je vhodný podmienený príkaz If
 

Predstavme si na chvíľu, že v našom programe bude môcť určitá premenná nadobudnúť niekoľko rôznych hodnôt a v závislosti od hodnoty sa bude neskôr vykonávať iný príkaz. Jedna možnosť je použiť ako riešenie rozhodovaciu štruktúru If .. Then .. Elseif .. Else. No čím viac bude rôznych hodnôt premennej, tým viac bude v kóde sekcií Elseif, kvôli čomu bude pomalší a podstatne neprehľadnejší. Za týmto účelom v programovacích jazykoch existuje prepínač – v našom prípade Select Case .. Case .. End Select (v iných programovacích jazykoch sa môže nazývať napr. switch).
 

Všeobecný zápis je:
 

Select Case premenná

            Case hodnota premennej č. 1

                        Príkazy, ktorí sa majú vykonať pre hodnotu č. 1

            Case hodnota premennej č. 2, hodnota č. 3

                        Príkazy pre platnosť dvoch hodnôt premennej

            Case rozsah začiatok To rozsah koniec

                        Príkazy pre číselné hodnoty premennej v určenom rozsahu

            Case Else

                        Príkazy, ktoré sa vykonajú, keď premenná nemá žiadnu z predošlých hodnôt = predvolené príkazy

End Select
 
Príklad si ukážeme na prevode programového čísla dňa z funkcie Date.Now.DayOfWeek na slovenský názov.
 

Dim den As Integer = Date.Now.DayOfWeek

Select Case den

    Case 0 'dni sa začínajú nulou a prvý deň je nedeľa

        Label1.Text = "Nedeľa"

    Case 1

        Label1.Text = "Pondelok"

    Case 2

        Label1.Text = "Utorok"

    Case 3

        Label1.Text = "Streda"

    Case 4

        Label1.Text = "Štvrtok"

    Case 5

        Label1.Text = "Piatok"

    Case 6

        Label1.Text = "Sobota"

    End Select

Pozn.: Pomocou charakteristík Date.Now môžeme pristupovať aj rôznym iným vlastnostiam dátumu ako napr.: deň v mesiaci, rok, môžeme zistiť či je daný deň piatok ap.


Pre porovnanie Vám ukážem ako by vyzeral tento kód zapísaný pomocou štruktúry If.
 

If den = 0 Then

    Label1.Text = "Nedeľa"

ElseIf den = 1 Then

    Label1.Text = "Pondelok"

ElseIf den = 2 Then

    Label1.Text = "Utorok"

ElseIf den = 3 Then

    Label1.Text = "Streda"

ElseIf den = 4 Then

    Label1.Text = "Štvrtok"

ElseIf den = 5 Then

    Label1.Text = "Piatok"

Else

    Label1.Text = "Sobota"

End If


A pri zvyšovaní počtu možných hodnôt premennej to bude iba horšie a horšie, takže je vhodné v prípadoch, kedy premenná môže mať viac ako 3 hodnoty, používať štruktúru Select .. Case .. EndSelect.

Nasledujúci príklad nám ukáže ďalšie možnosti použitia podmienok v príkaze Case v štruktúre Select.
 

 

Dim mesiace As Integer = Date.Now.Month

  Select Case mesiace

      Case Is < (5 - 2)

          Label1.Text = "zima"

      Case 3 To 5

          Label1.Text = "jar"

      Case 6 To 8

          Label1.Text = "leto"

      Case 9, 10, 11

          Label1.Text = "jeseň"

      Case Else ' pre 12ty mesiac

          Label1.Text = "zima"

End Select
 
V prvom príkaze Case je vidieť, že ako podmienky je možné použiť aj výsledky rôznych výpočtov alebo matematické, či logické operátory ako je v tomto prípade Is a <.
 

PictureBox – základné funkcie

Jedným z využití PictureBoxu je použiť ho ako kontajner pre obrázky. Tie možno zadať napr. pri návrhu aplikácie vybraním cesty v paneli vlastností kliknutím na Image. Tu možno vložiť priamo fyzickú cestu k obrázku uloženom niekde na Vašom disku, alebo načítať ho s Resources.rex, prípadne iného súboru s rôznymi zdrojovými dátami (o tom však až inokedy). Ďalší spôsob je dynamické načítanie obrázku za behu aplikácie pomocou nasledujúceho príkazu:
 

PictureBox1.Load("disk:cestakvasemuobrazku.koncovka")

Ďalšou dôležitou vlastnosťou, ktorú nájdete aj v paneli je vlastnosť SizeMode, ktorá určuje, ako sa má ovládací prvok správať v závislosti od načítaného obrázku. Táto vlastnosť sa dá nastaviť aj kliknutím na šípku v rohu ovládacieho prvku – viď obr.
 

SizeMode

SizeMode = Normal

            Obrázok sa načíta do PictureBoxu tak, že sa umiestni do ľavého horného rohu a v prípade, že je zobrazovaný obrázok väčší ako prvok sa prečnievajúce časti odrežú.

SizeMode = StretchImage

            Obrázok sa roztiahne, prípadne zmrští do veľkosti ovládacieho prvku, čo môže spôsobiť zmenu proporcií.

SizeMode = AutoSize

            Veľkosť prvku PictureBox sa prispôsobí veľkosti načítaného obrázku. Zmení svoj rozmer v prospech zachovania proporcií.

SizeMode = CenterImage

            Správa sa rovnako ako mód Normal s rozdielom, že obrázok sa do prvku vycentruje.
 

Posuvníky – HscrollBar a VScrollBar

Dôvod, prečo si teraz ukážeme základy posuvníkov je ten, že ich budeme potrebovať pri miešaní RGB farieb v nasledujúcom príklade. Ich najdôležitejšie vlastnosti sú Minimum, Maximum a Value. Minumum udáva najnižšiu hodnotu posuvníku, Maximum udáva maximálnu možnú hodnotu a Value aktuálnu hodnotu.
 
RGB – miešanie farieb na plátne PictureBoxu

PictureBox ako ovládací prvok neslúži iba na načítanie obrázkov, ale na prácu s grafikou všeobecne. My si teraz ukážeme ako na pozadí PictureBoxu možno miešať farby palety RGB. Nakreslite si teda na formulár ovládacie prvky približne nasledovne:
  

Návrh okna
 

Pomocou posuvníkov budeme meniť farbu pozadia PictureBoxu a to tak, že každý posuvník zastupuje jednu farbu palety RGB. Najvrchnejší R, teda červenú, prostredný G, čiže zelenú a spodný B, čiže modrú. Prvky Label pod posuvníkmi budú udávať hodnotu tej ktorej farby. Maximálne hodnoty posuvníkov nastavíme podľa pravidla miešania paliet palety RGB a teda na hodnotu 255, čo nám zaručí maximálny počet farieb 16581375 (255 x 255 x 255).
 

Náš aktuálny postup bude ten, že pre každý posuvník napíšeme handler zvlášť (vhodnejší spôsob si ukážeme až v nasledujúcom diele) a bude teda vyzerať približne nasledovne:

Private Sub HScrollBar1_Scroll( … ) Handles HScrollBar1.Scroll

        PictureBox1.BackColor = Color.FromArgb(HScrollBar1.Value, HScrollBar2.Value, HScrollBar3.Value)

        Label1.Text = "RED: " & HScrollBar1.Value

End Sub

Rozbor:

- udalosť Scroll posuvníka sa vykoná vždy vo chvíli jeho pohybu

- o zmiešanie farieb sa stará funkcia Color.FromARGB(), ktorá má tri parametre = farby (v poradí červená, zelená, modrá) a my jej ich priraďujeme v závislosti na hodnote daných posuvníkov.

- vždy musíme priraďovať všetky tri parametre aj keď sa mení iba jeden

- každý Label bude zobrazovať hodnotu príslušnej farby
 

Pozorný čitateľ, ktorý sa dostal až sem, bude určite schopný napísať handlery aj pre ďalšie ScrollBary. Ak ste spravili všetko správne, výsledok by mohol vyzerať napr. takto:

Miešanie farieb
 

Určite ste si už skôr všimli toho tmavšieho popisu pod PictureBox-om. Slúži na zobrazenie html kódu aktuálne zobrazovanej farby. V mojom kóde sa o to stará nasledovný príkaz:

 

Label4.Text = ColorTranslator.ToHtml(PictureBox1.BackColor)

Záver

            Ak sa Vám podarilo dosiahnuť rovnakých výsledkov ako v mojich príkladoch tak mi opäť a zas neostáva nič iné ako Vám pogratulovať. Verím, že články sú písané zrozumiteľne a je z nich jednoduché vstrebávať informácie. Ak však máte akékoľvek pripomienky, nápady či želania, neostýchajte sa a pokojne mi napíšte na e-mailovú adresu. Prajem Vám príjemný zvyšok dňa.


Peter Hrdlica

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies