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

VB - 25. lekceVB - 25. lekce

 

VB - 25. lekce

Google       Google       28. 8. 2005       14 814×

25.1 Vlastní datové typy
25.2 Využití datových typů ve funkcích
25.3 Výčtové typy ENUM
25.4 Domácí úkol
25.5 V další lekci

25.1 Vlastní datové typy

Co to je ? Ne, nebojte, nebudete vytvářet typy podobné Double nebo Long. Vytvářet budeme Typ, který v sobě obsahuje více dalších typů. Nejdřív se podíváme, jak vypadá definice takového typu:


Type ColorValue
  lngRed As Long
  lngGreen As Long
  lngBlue As Long
  lngCyan As Long
  lngMagenta As Long
  lngYellow As Long
  lngGrey As Long
End Type

No jo, to, co jsem tu napsal, je sice hezké, ale proč to používat, když místo toho můžu napsat:


Dim lngRed As Long
Dim lngGreen As Long
Dim lngBlue As Long
Dim lngCyan As Long
Dim lngMagenta As Long
Dim lngYellow As Long
Dim lngGrey As Long

No důvod je tu zřejmý: představte si, že potřebujete ve funkci vrátit více hodnot než jednu. Ptáte se jak? No samozřejmě, že pomocí datových typů.

25.2 Využití datových typů ve funkcích

No tak teď teda k praxi a hned si ukážeme jak to využít.

Do modulu:


Public Type InfoOZamestnanci 'definice Typu
  strMeno As String
  strPrimeni As String
  bytVek As Byte
  intPlat As Integer
  blnAuto As Boolean
End Type

Public Function VratInfoOZamestnanci(intIdZamstnance) As InfoOzamsnanci 'funkce
  VratInfoOZamestnanci.strMeno = "Petr"
  VratInfoOZamestnanci.strPrimeni = "Málek"
  VratInfoOZamestnanci.bytVek = 54
  VratInfoOZamestnanci.intPlat = 23500
  VratInfoOZamestnanci.blnAuto = True
End Function

Do Formuláře:


Dim IZamesnanec As InfoOzamsnanci

Private Sub Command1_Click()
  IZamesnanec = VratInfoOZamestnanci(2)
  txtJmeno.Text = IZamesnanec.strMeno
  txtPrimeni.Text = IZamesnanec.strPrimeni
  txtPalt.Text = IZamesnanec.intPlat
  optAuto.Value = IZamesnanec.blnAuto
End Sub

Tak teď se na to podíváme podrobněji a popíšeme si, co je to vše zač. Tak především vás musím upozornit na to, že uživatelsky definovaný typ není proměnná, jak by si někdo mohl mylně myslet. Proměnná ovšem tento typ může využívat. V našem případě je takovou proměnnou IZamesnanec. Je to tedy proměnná typu InfoOzamsnanci. Stejně jako by to mohla být proměnná typu Long či Integer, ale to není. Stejně tak funkce je typu InfoOZamestnanci. Tato funkce nám tedy nese požadavek tvořený voláním funkce s doplněným parametrem, který tvoří ID číslo pracovníka. Funkce nám pak o zaměstnanci vrátí sadu informací. A protože by bylo značně nepraktické psát pro každou informaci zvláště funkci, vrátí se nám informace jako datový typ v názvu funkce. Data z ní dostaneme tím, že je nahrajeme do funkce stejného typu. A zní pak hodnoty vybíráme jak je ukázáno na výše uvedeném příkladě. Hodnoty ale můžeme předávat také přímo, bez použití proměnné:


txtPalt.Text = VratInfoOZamestnanci(2).bytVek

No to by bylo to důležité k uživatelsky definovaným typům. Jejich použití časem velmi oceníte například u knihoven či tříd. Nebo jen tak ke kávě :).

25.3 Výčtové typy ENUM

Výčtové typy? Tak to hned uvidíte, co to je:


Public Enum barvy
    red = 1
    blue = 2
    green = 3
    cyan = 4
    magenta = 5
    yellow = 6
End Enum

Toto je definice výčtového typu, je to takový seznam konstant. Teď se podíváme, jak může vypadat jeho použití v kódu:


Dim a As barvy

Private Sub Command1_Click()
Command1.Caption = barvy.blue '1
a = green '2
a = cyan
Print a
End Sub

V prvním případě pomocí něj jen předáme hodnotu do nějaké vlastnosti. V druhém případ je to zajímavější, definuje si proměnou a jako typ barvy a ta teď bude moci nabývat hodnot konstant definovaných ve výčtovém typu barvy. Ještě je tu jedna věc, která stojí za zmínku a to:


Public Enum Cisla
  jedna = 1
  dva
  tri
  ctyri
End Enum

Private Sub Command1_Click()
  a = dva
  Print a
End Sub

Jaká se vytiskne hodnota? No jistě, že dva. Pokud by ale k jedničce byla přiřazena trojka, tak by se vytiskla 4. K výčtovým typům si více povíme hned jak se pustíme do dělání knihoven dll, komponent a podobných záležitostí. Snad už u tříd. Ale teď jde především o to, abyste přibližně věděli, o co jde a nebyli překvapeni, pokud byste něco takového v kódu viděli.

25.4 Domácí úkol

Ještě budu čekat než dostanete něco opravdu složitého. Ale kdepak, teď to přijde. A na výběr budou dvě záležitosti. Nic složitého ;) :

  1. Arkanoid – nejspíš každý víte o co jde, kdo ne, tak ať hledá. Propracujete úhly odrazu tak, aby se to dalo hrát. A očekávám i pěkné grafické provedení.
  2. Adventuru – No naprogramovat adventuru není žádný problém, pokud se do něčeho nezamotáte a kvůli nekomentovanému a nepřehlednému kódu něco nepoděláte. Tak ať to má alespoň hodinový děj.

Moc se těším na vaše výtvory, obzvláště na ty adventury.

25.5 V další lekci

Další lekce bude odpočinek. Bleskově mrkneme na pole a na funkce pro práci s řetězci. Že už jsme to dělali? No jo, pořád je, co se učit. Takže zase nové a další věcičky, které uplatníte při programování.

×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 Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

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ý