Naar onze bescheiden mening is dit hoofdstuk wel het ingewikkeldste. Als u een goed programmeur wil worden, zal u dit hoofdstuk grondig moeten instuderen. Vooral de uitleg in punt 1 (Informatie opslaan in variabelen en constanten) en punt 2 (Bereik van variabelen).
Om efficiënt te kunnen programmeren, moet u informatie tijdelijk kunnen opslaan. Zoals in elke volwaardige programmeertaal kan dit ook in VB. In VB kan u informatie opslaan in variabelen en constanten.
Laten we veronderstellen dat u de auto's op een parkeergarage wil tellen. Terwijl u telt, slaat u uw informatie in een variabele op. De geheugenlocatie kan zich situeren in uw hersenen of op een geheugenchip van uw computer. Het soort informatie dat opgeslagen wordt, is een geheel getal. De feitelijke informatie is het aantal auto's dat u geteld hebt.
Variabele betekent dat de informatie in de loop van de tijd kan veranderen. In het voorbeeld van de autotelling, wordt het getal groter of kleiner. Als er auto's bijkomen wordt het groter en in het tegengesteld geval wordt de variabele kleiner. U kan informatie in een variabele opslaan en de opgeslagen informatie kan u terug oproepen.
Een variabele moeten we een naam geven én er een waarde aan toekennen. Als u ooit eerder programmeercode zag, heeft u zeker het onderstaande ontmoet:
Dim x As Integer
'Dim' (afkorting van dimension) dient om de variabele te declareren. Het declareren van een variabele betekent dat u geheugenruimte reserveert voor wisselende informatie, noem ze "x". De soort informatie wordt bepaald door het laatste woord (Hier: 'Integer').
Wij gebruikten in ons voorbeeld de variabele x. Dit is een korte maar geen duidelijke naam. We zouden ze ook aantal_autos kunnen noemen. Dit is wel meer tikwerk maar het is duidelijk.
Bij het benoemen van de variabele moet u onderstaande regels naleven:
Hieronder vindt u de belangrijkste
conversies die we in dit deel zullen gebruiken:
CShort (conversie naar Short); CInt (conversie naar Integer); CLng
(conversie naar Long); CStr (conversie naar String);
Het converteren (veranderen) naar een bepaald gegevenstype komt uitvoerig aan de orde in hoofdstuk 5.
Tof, u weet nu wat een variabele is en hoe u ze maakt. Maar wat kunt u in een variabele opslaan? Vrijwel alles. Een variabele kan een getal bevatten, een reeks tekens of een verwijzing naar een object. De belangrijkste variabelen zijn deze die staan voor tekst en getallen.
Elk type variabele is geschikt om een bepaalde soort informatie in op te slaan. De uitroep "Oprotten!!!" kan u niet opslaan in een variabele met als type 'Integer' maar wél in een variabele met als type 'String'.
| Type | Doelgroep | Geheugenruimte | Waardenbereik |
|---|---|---|---|
| Short | Gehele getallen | twee bytes | -32768 tot 32767 |
| Integer | Gehele getallen | vier bytes | ongeveer +/- 2 miljard 147 miljoen |
Long
(komt van Long integer) |
Gehele getallen | acht bytes | -9223372036854775808 t.e.m. 9223372036854775807 |
| Single | Decimale getallen | vier bytes | (+/-)1.401298E- 45 tot 3.402823E38 |
| Double | Decimale getallen | acht bytes | (+/-)1.79769313486231E+308 tot 4.940656458424E-324 |
| Currency | Bestaat niet meer in VB2005 | ||
| String | Tekstinformatie | één byte per teken | Tot 65400 tekens voor reeksen met een vaste lengte en tot 2 miljard tekens voor dynamische tekenreeksen |
| Byte | ------------------ | een byte (8 bit) | 0 tot 255 |
| Boolean | Logische waarde | twee byte | True of False |
| Date | Datum- en tijdinformatie | acht bytes | 1/1/100 tot en met 12/31/9999 |
| Object | Instanties van klassen: OLE-objecten | vier bytes | n.v.t. |
| Variant | Bestaat niet meer in VB2005 | Bestaat niet meer in VB2005 | Bestaat niet meer in VB2005 |
Het is niet nodig deze tabel van buiten te leren. De meest interessante kolommen zijn de kolommen 1, 2 en 4. Vooral de typen, gebruikt voor getallen, en de String worden vaak gebruikt. Dit geldt in iets mindere mate voor Boolean en Date.
In tegenstelling tot de variabele heeft de constante slechts 1 waarde. Deze waarde blijft steeds dezelfde.
Het geheel van formulieren (Forms) en module(s) vormen het project. Een eenvoudig programma kan slechts 1 formulier en 1 module bevatten. Een complex project zal meerdere formulieren en meerdere modules bevatten.
Binnen elk project hebben de variabelen een bereik. Anders gezegd heeft een variabele een gebied waarbinnen het iets te zeggen heeft. Daarbuiten heeft deze variabele géén invloed meer. Niet elke variabele binnen eenzelfde project bestrijkt hetzelfde gebied. Dit mag maar het komt zelden voor. Schematisch overzicht van een project:
| Formulier (Form) | Module |
| Declaration | Declaration | |
|
Sub
End Sub Function End Function |
Sub
End Sub Function End Function |
In ons schematisch overzicht van een project (zie hierboven), ziet u een procedure en een functie. Deze gegevens kan u plaatsen in de code van uw formulier of in uw module. De procedure begint altijd met Sub en eindigt steeds met End Sub. De functie daarentegen begint altijd met Function en eindigt steeds met End Function. Functies komen later aan bod in deze cursus.
U vindt zowel bovenaan het formulier (in code) als bovenaan de module (in code) een afzonderlijk gebied. Dit gebied heet Declaration. Probeer dit niet te verwarren met het "declareren" van variabelen. U zal vaak een variabele niet in het gebied Declaration (in de code) declareren.
We geven een schematisch overzicht in onderstaande tabel.
| Dim | 'Dim' en 'Private' zijn gelijk in declaratie. |
| Private | Indien 'Private' en 'Public' in 'Declaration' staan dan zijn ze geldig in het gehele formulier. |
| Public | 'Public' gedeclareerd in 'Declaration'-zone van de module is geldig in het gehele project, dus in alle formulieren en alle modules. |
Als u een variabele lokaal wil houden, kan u ze beter op het niveau van de procedure plaatsen. U gebruikt 'Public' dan beter niet!
Opmerking: In tegenstelling tot de variabele heeft de constante slechts één waarde.
'Static' onthoudt de waarde ook na het verlaten van de procedure. In de volgende procedure wordt ze echter niet meer herkend ! Hieronder een voorbeeld van een procedure met variabele 'Short' en gedeclareerd als 'Static'. Dit is interessant als u de procedure meer dan 1 maal aanroept en het vorige resultaat wil onthouden.

Het is belangrijk dat we de
berekeningen uitvoeren in een module. Enerzijds is dit noodzakelijk
omwille van de overzichtelijkheid en anderzijds kunnen we deze module
vroeg of laat nodig hebben in een ander project.
Klik in de menubalk op 'Project' -->'Add New Item'
-->'Module' dubbelklikken. U komt nu in de code van de module
terecht. Binnen een project is het mogelijk om meerdere modules te
maken.
Bij een array tellen we steeds vanaf het getal 0.
Dim Naam(1) As String
Naam(0) = "iets"
Naam(1) = "leuk"
Deze array is statisch omdat we niet verder kunnen gaan dan Naam(1) daar we deze beperking oplegden bij de declaratie nl. "Dim Naam(1) As String". Het opleggen van een beperking is inherent aan een statische array. We dienen te onthouden dat we bij een 'array' steeds tellen vanaf het getal 0.
Dim Naam( )As String
Redim Preserve Naam(0)
Naam(0)= "iets" Uitleg :
Naam(0) is een String en deze moet tussen dubbele
aanhalingstekens staan. Dit is de reden waarom het woordje iets tussen
" " staat !
Redim Preserve Naam(1)
Naam(1)= "TEST" Uitleg : Naam(1) is een String
en deze moet tussen dubbele aanhalingstekens staan. Dit is de reden
waarom het woordje TEST tussen " " staat !
Als je een dynamische array maakt, moet je PRESERVE gebruiken anders onthoudt het geschreven programma de array onvolledig!
woord(0)= "Programmeren " Dus:
Programmeren + spatie
woord(1)= "is " Dus: is + spatie
woord(2)= "leuk " Dus: leuk + spatie + !
Het resultaat ziet eruit zoals hieronder:

U start vanaf een leeg formulier. Klik op MenuStrip in Toolbox (tabblad links). Klik vervolgens in het formulier.

Klik in het vak Type Here bovenaan in het formulier en geef uw tekst in. Als u een ampersand plaatst wordt de eerstvolgende letter onderlijnd. Als voorbeeld tijpen wij &Bestand en bevestigen door op de enter toets te drukken.
Als u nu dubbel klikt op een menu-item komt u in de code terecht. Daar kan u dan de bevelen ingeven zoals u dat voor andere besturingselementen doet.
In deze oefening zullen we door gebruik te maken van een array met 3 getallen waarvan we er één in elk label plaatsen. Dit zal gebeuren als de gebruiker op de knop met als naam Array klikt.
Daar dit pas de tweede oefening is die we maken, kan het ons wat denkwerk kosten. We mogen echter niet vergeten: oefening baart kunst !
Klik Start -->Alle programma's
-->Microsoft Visual Basic 2005
Kies voor File --> New project --> Windows Application
Klik nu op de OK-knop of dubbelklik op WindowsApplication
U ziet nu een leeg formulier.
Op dit formulier zullen we een knop en 3 labels plaatsen. We klikken in onze Toolbox (links op ons scherm) op Label. Vervolgens klikken we in het formulier. Het eerste label staat nu in dit formulier.
We klikken terug op de het besturingselement Label in de Toolbox. Vervolgens klikken we opnieuw in het formulier. Zo krijgen we ons 2de label op het scherm. We herhalen dit voor het 3de label. Nu we alle labels hebben, voegen we in een volgende stap de knop toe. Het resultaat met de knop ziet u hieronder:

Indien u iets fout deed kan u het besturingselement verwijderen:
Klik op dit besturingselement zodat er
een grijze kader omheen komt.
Druk op de knop Delete (of: Supprimer) op uw toetsenbord.
Als u per ongeluk in de code terecht komt:
Kies bovenaan het tabblad Form1.vb [Design]
We plaatsen de code (zie hieronder) in de procedure Button_Click. Deze procedure maken we aan door dubbel te klikken op de knop Array.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim getal(2) As Integer
getal(0) = 100
getal(1) = 200
getal(2) = 300
'Hierboven geven we elke variabele een waarde
Label1.Text = getal(0)
Label2.Text = getal(1)
Label3.Text = getal(2)
End Sub
End Class
Testen
Het is zeer belangrijk dat we steeds testen of onze code naar behoren werkt. Dit doen we door te klikken op Debug --> Start Debugging (of druk op toets F5).
Nu zien we het formulier zoals het voor de gebruiker verschijnt.
We kruipen in de huid van de gebruiker en klikken op de knop Array. We zien nu onderstaand formulier.

We hebben ons eerste programma met array geschreven!
Maak onderstaand formulier

Het bovenste tekstvak noemt Txt_leeftijd en het onderste tekstvak Txt_resultaat. Deze aanpassingen voert u door in de eigenschappen (properties). Zorg dat u in de Design-mode staat. Dit is de mode waarbij je besturingselementen in de Form kan toevoegen. Deze mode is tegengesteld aan de Run-mode.
Public leeftijd As Integer
'cat staat hieronder voor categorie
Public cat As String
In de knop bij Click-gebeurtenis:
leeftijd = CInt(Txt_leeftijd.Text)
Call berekenen
Txt_resultaat.Text = cat
Sub berekenen()
If leeftijd >= 0 And leeftijd <= 2 Then
cat = "baby"
End If
If leeftijd > 2 And leeftijd <= 3 Then
cat = "peuter"
End If
If leeftijd >= 4 And leeftijd <= 6 Then
cat = "kleuter"
End If
If leeftijd >= 7 And leeftijd <= 11 Then
cat = "schoolgaand kind"
End If
If leeftijd >= 12 And leeftijd <= 15 Then
cat = "puberteit"
End If
If leeftijd >= 16 And leeftijd <= 21 Then
cat = "adolescent"
End If
If leeftijd >= 22 And leeftijd <= 58 Then
cat = "volwassen"
End If
If leeftijd >= 58 Then
cat = "bejaarden"
End If
End Sub
We maken een formulier met 2 labels en een knop. Op de knop staat de tekst Array. Als de gebruiker op de knop drukt komen er in elke label 2 namen. We gebruiken een array waarbij de 1ste naam een voornaam is en de 2de naam een achternaam. De 3de naam is opnieuw een voornaam en de 4de een achternaam. De namen kiest u zelf.
Het resultaat ziet er ongeveer uit zoals in onderstaand formulier

De namen komen te voorschijn bij het klikken op de knop Array. Ze zullen in uw oefening niet dezelfde zijn, daar u ze zelf mocht kiezen.
© Marc Vandenbussche d.d. 20 maart 2006