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

VB - 25. lekceVB - 25. lekce

 

VB - 25. lekce

Google       Google       28. 8. 2005       11 524×

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

Reklama
Reklama

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

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.

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ý