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

VB – 40. lekceVB – 40. lekce

 

VB – 40. lekce

Google       Google       21. 2. 2006       16 229×

40.1 Úvod do čtvrté desítky
40.2 Vlastní typ binárního souboru
40.3 Flexgrid - pokračování
40.4 Volání procedur událostí v kódu
40.5 Dodatek o objektu Label
40.6 Domácí úkol
40.7 V další lekci

40.1 Úvod do čtvrté desítky

Toto je jubilejní 40. lekce. Takhle jsem to sice nechtěl, ale vyšlo to tak. Mělo tu být něco velmi zajímavého, ale bohužel tomu tak nebude. Musím totiž splnit nějaké sliby a povinnosti. Ze slibů je to ukázka vlastního binárního souboru, která se mi nějakým způsobem vytratila, a z povinností je to dokončení Flexgridu, který ovšem osobně moc rád nemám.


40.2 Vlastní typ binárního souboru

Následující kód - tedy předvedení binárního souboru - pochází z návrhu na jednu hru. Na styl Diabla, ale s grafikou podobnou spíše hře Pokémon pro Gameboy color. Bohužel jsem se do tohoto projektu nějak zamotal a nemám čas v něm pokračovat, snad jindy :) Kód využívá především datových typů. Ty ho dělají přehlednější. Kód je značně ořezán, protože byste museli sakra dlouho skrolovat a asi byste se nedozvěděli nic navíc. Ale pokud chcete dělat savy a podobné věci, doporučuji používat uživatelsky definované typy, je to fakt lepší.
Kód:

Do modulu:


Public Type Waepon 'popisuje vlastnosti zbraní
    Jmeno As String * 16
    Damage As Byte
    Durability As Byte
    Cost As Long
    NeedStrange As Byte
    Special As Byte
    Magic As Byte
    MagicHP As Byte
    Description As String * 255
End Type

Public Type Armor 'popisuje vlastnosi brnění
    Jmeno As String * 16
    Durbilty As Byte
    Cost As Long
    NeedStrange As Byte
    Special As Byte
    Magic As Byte
    Description As String * 255
End Type

Public Type Charakter 'popisuje vlastnosti postav, ale nejsou tam všechny
    Jemno As String * 16
    Exp As Long
    Level As Byte
    Money As Long
    Aura As Byte
    Streng As Byte
    Dexterity As Byte
    Magistry As Byte
    Life As Integer
    maxLife As Integer
    Mana As Integer
    maxMana As Integer
    Year As Byte
End Type

Public Type Magic 'zde jsou uvadeny pouze základní skupiny, běžně mají ještě podtypy
    Fire As Byte
    Ice As Byte
    Elct As Byte
    White As Byte
    Black As Byte
    Phys As Byte
    Curse As Byte
End Type

Na formulář přidat 4 tlačítka, toto je kód do modulu formuláře:


Private cokoliv As Long 'toto je tu jen abyste viděli, jak se prcuje s jednotlivými proměnnými
Private Char1 As Charakter
Private armor1 As Armor
Private Waepon1 As Waepon
Private Mag As Magic


Sub SaveToBinnary()
    Open "c:/charakter.cha" For Binary As #1
        Put #1, 1, Char1
        Put #1, , cokoliv
        Put #1, , Waepon1
    Close #1
End Sub

Sub LoadFromBinnary()
    Open "c:/charakter.cha" For Binary As #1
        Get #1, 1, Char1
        Get #1, , cokoliv
        Get #1, , Waepon1
    Close #1
End Sub

Private Sub Command1_Click()
    With Char1
        .Jemno = "DruSeev"
        .Exp = 12845
        .Level = 12
        .Money = 350
        .Aura = 20
        .Streng = 11
        .Dexterity = 11
        .Magistry = 14
        .Life = 105
        .maxLife = 106
        .Mana = 20
        .maxMana = 163
        .Year = 2
    End With
    With Waepon1
        .Jmeno = "Sword of darkness"
        .Damage = 5
        .Durability = 21
        .Description = "meč se vyznačuje temnou silou, jež oslepuje protivníka, za to se platí nízkým zraněním "
    End With
    With Mag
        .Fire = 0
        .Ice = 3
        .Elct = 1
        .White = 0
        .Black = 6
        .Phys = 2
        .Curse = 12
    End With
    cokoliv = 7
End Sub

Private Sub Command2_Click()
    SaveToBinnary
End Sub

Private Sub Command3_Click()
    LoadFromBinnary
End Sub

Private Sub Command4_Click()
    With Char1
        Print .Jemno
        Print .Level
        Print .Exp
    End With
    
    With Waepon1
        Print .Damage
        Print .Jmeno
        Print .Description
    End With
    Print cokoliv
End Sub

Prvním tlačítkem uložíte hodnoty do proměnných. Druhým vytvoříte soubor a uložíte hodnoty do něj. Pak můžete formulář zavřít. Potom hodnoty pomocí třetího tlačítka načtete do proměnných a pomocí čtvrtého tlačítka je vytisknete na formulář. Nevytahoval jsem vše, protože - jak jsem psal nahoře - by byl kód příliš roztáhlý. Proto vypisuji pouze několik hodnot, však to vyzkoušejte sami. A teď už ke druhé části, tou je propojení FlexGridu s databází.


40.3 Flexgrid pokračování

Upřímně řečeno nevím, co mě to napadlo roztahovat Flex Grid do dvou lekcí, těch pár řádků, co tu napíšu, za to ani nestojí. Protože pokud chcete data z databáze dát do flexgridu, tak opravdu nemáte moc práce, stačí si vhodně nastavit flexgrid a potom už jen u flexgridu nastavit správě vlastnost DataSource na Data1 nebo na název všeho objektu Data. Vzhledem k tomu, že jsem to moc neodhadl, tak ještě něco málo přidám.


40.4 Volání procedur událostí v kódu

Pokud chceme zavolat nějakou proceduru události v kódu, tak ji voláme jejím jménem, takto:


Private Sub Command1_Click()
    Print "x", 135
    Print "y", 523
End Sub

Private Sub Command2_Click()
    Command1_Click
End Sub

Pokud má funkce parametry voláme ji takto:

Private Sub Command1_Click()
    Command2_MouseDown 1, 0, 150, 150
End Sub

Private Sub Command2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Print Button
    Print Shift
    Print X
    Print Y
End Sub

To by bylo tak vše k danému tématu.


40.5 Dodatek o objektu Label

Objet label má ještě dvě vlastnosti, o kterých jsem se nezmínil, tak to chci napravit. Takže zaprvé je to vlastnost Autosize. Pokud ji nastavíte na true, tak se label bude při vkládání roztahovat do délky. Pokud ovšem nastavíte na true i vlastnost wordwarp, tak se bude roztahovat i na výšku a to tak, že bude řádky zalamovat v mezerách. Nemusíte tedy mít strach, že by vám rozpůlil slovo.


40.6 Domácí úkol

Vytvořte vlastní binární soubor jakéhokoliv programu


40.7 V další lekci.

V další lekci zase nějaké drobnosti na doplně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ý