Hoofdstuk 8: Visual Basic
8.10. Overzicht
8.10.1. Variabelen
Als je een bepaalde variabele gebruikt moet je die eerst declareren.
Bijvoorbeeld:
Dim x, y as integer
Dim naam as string
Als je de variabelen declareert in de eerste regels van een procedure dan zijn het lokale variabelen.
Die houden hun waarden alleeen vast tijdens de procedure. Is de procedure afgelopen dan is de variabele er ook niet meer.
Als je de variabelen declareert onder General, bij Declarations, dan zijn het globale variabelen. Die houden hun waarde vast in het formulier waarin ze gedeclareerd worden.
Typen van variabelen:
byte | 8-bit integers: 0 t/m 255 |
integer | 16-bit integers: -32768 t/m 32767 |
long | 32-bit integers (positief en negatief) |
single | 32-bit floating-point getal, 8 significante cijfers |
double | 64-bit floating-point getal, 16 significante cijfers |
string | String van maximaal 63000 karakters |
boolean | true of false |
date | datum |
variant | kan voor van alles gebruikt worden |
array | bijvoorbeeld: dim woord(100) as string
of bijv. dim x(3,4) as integer
of dim jaar(2000 to 2010) as integer |
constant | bijv. const pi as single = 3.14159
Je hebt ook ingebouwde constanten, bijv. vbCrLf. Dit staat voor chr(13) + chr(10) |
Een array van controls, bijv. van labels:
Die hoef je niet te declareren.
Plaats eerst zo'n control op het formulier, (bijv. het label met de naam Label) en geef die de index 0
(dan wordt de naam Label(0) )
Dan kun je nieuwe controls maken m.b.v. load
bijv. load Label(1)
Label(1).visible = true
Label(1).left = Label(0).left + 500
Wil je hem laten verdwijnen:
unload label(1)
Declaratie-typen:
dim | Wordt gebruikt om variabelen in procedures te declareren
Elke keer als de procedure wordt aangeroepen wordt de variabele gereset (op 0 gezet) |
Static | Wordt gebruikt om variabelen in procedures te declareren
Elke keer als de procedure wordt aangeroepen wordt de waarde van de variabele hersteld (teruggeroepen) |
public | Wordt gebruikt om variabelen in een module te declareren
|
Private | Wordt gebruikt om variabelen in procedures te declareren De variabele mag alleen in het project gebruikt worden
|
redim | Wordt gebruikt om een rij opnieuw te declareren
|
8.10.2 Het formulier
In een project kun je met verschillende formulieren werken.
Als je in het menu van VB klikt op Project en dan op
Programmanaam Properties,
dan kun je via het tabblad General aangeven met welk formulier er gestart wordt
(Startup Object).
Standaard is dat Form1.
Als je wilt dat er bepaalde opdrachten worden uitgevoerd zodra het formulier wordt gestart dan moet je die in de
procedure Form_Load( ) zetten.
Zet bij een formulier het kenmerk Autoredraw op True (standaard staat het op False).
Als je dit niet doet dan worden teksten en/of tekeningen op het formulier verwijderd als de gebruiker de afmetingen van
het formulier wijzigt.
De belangrijkste methoden van een formulier (neem aan dat de naam van het formulier Form1 is) zijn:
Form1.Show vbModal | Het formulier wordt geladen en getoond vbModal kan worden weggelaten.
Als het wordt toegevoegd heeft het tot gevolg dat er geen sluitknop op het formulier zit, het kan alleen via het programma worden gesloten |
Load Form1 | laad het formulier in het geheugen, het wordt nog niet getoond |
Form1.Hide | Het formulier wordt onzichtbaar. Het blijft wel in het werkgeheugen staan |
Form1.Caption="Test" | In de titelbalk van het formulier verschijnt Test |
Form1.Left = (Screen.Width - Form1.Width) / 2 | Het formulier verschijnt (horizontaal) in het midden |
Form1.Top = (Screen.Height - Form1.Height) / | Het formulier verschijnt (vertikaal) in het midden |
8.10.3 Tekstbox
In een tekstbox kan tekst worden getypt. Standaard staat MultiLine op False, dan kan er maar één regel tekst worden ingevoerd van maximaal 32766 tekens.
Zet je MultiLine op True dan kunnen er meer regels in worden getypt. Je kunt ook een scrollbalk toevoegen via het kenmerk Scrollbars in het eigenschappenvenster.
De belangrijkste methoden van een textbox (neem aan dat de naam van de textbox Text1 is) zijn:
Text1.Text = "test" | Het woordje Test verschijnt in de tekstbox |
Text1.Text = str(g) | Als g een variabele is voor een getal dan wordt dat getal in de tekstbox getoond. |
Text1.Text = "" | De tekstbox wordt leeg gemaakt |
Text1.Text = "regel1" + chr(13) + chr(10) + "regel2" | Tekst over twee regels verdeeld in de tekstbox |
t = Text1.Text | De string-variabele t krijgt de inhoud van de tekstbox |
g = val(Text1.Text) | De getal-variabele g krijgt de getalswaarde van de inhoud van de tekstbox |
Text1.Enabled = False | De gebruiker kan niets aan de tekst in de tekstbox veranderen |
Text1.Visible = False | De tekstbox wordt onzichtbaar, verdwijnt dus |
Text1.Fontname = "Arial" | Het lettertype van de tekstbox wordt Arial |
Text1.Fontsize = 12 | De grootte van het lettertype wordt 12 punten |
Text1.Fontbold = True | De tekens worden vet |
Text1.Forecolor = QBColor(0) | De kleur van de letters wordt zwart |
Text1.Backcolor = QBColor(0) | De achtergrondkleur wordt zwart |
Text1.Setfocus | De cursor wordt in de tekstbox gezet. Kan niet als Enabled op False staat, en kan ook niet
in de Form_load-procedure worden gezet. |
De focus kun je ook op een andere manier aan een object geven:
KeyCode = 0
SendKeys "{TAB}"
Deze opdrachten zorgen er voor dat de focus naar de volgende control gaat, net alsof je op de tab-toets hebt gedrukt.
8.10.4 Label
Een label is een venster met een (vast) opschrift.
Een paar methoden van een label (neem aan dat de naam ervan Label1 is) zijn:
Label1.Caption = "Test" | Het opschrift van het label wordt Test |
Label1.Borderstyle = 1 | Er verschijnt een rand om het label |
Label1.Alignment = "Center" | Het opschrift van het label wordt gecentreerd |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.5 Button (of knop of commandbutton)
Een button is een knop waarop geklikt kan worden om er voor te zorgen dat een opdracht wordt uitgevoerd.
De kleur van zo'n knop is altijd grijs.
Een paar methoden van een button (neem aan dat de naam ervan Command1 is) zijn:
Command1.Caption = "Test" | Het opschrift van de knop wordt Test |
Command1.Borderstyle = 1 | Er verschijnt een rand om de knop |
Command1.Setfocus | De knop krijgt de focus, als je op enter drukt wordt de bijbehorende opdracht uitgevoerd |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.6 Picturebox
Een picturebox is een venster waarin een plaatje getoond kan worden, waarin getekend kan worden, en waarin tekst getoond kan worden.
Zet bij een picturebox Autoredraw op True (standaard staat het op False).
Als je dit niet doet dan wordt tekst of tekeningen in de picturebox verwijderd als de gebruiker het de afmetingen van
de picturebox wijzigt.
Je kunt een plaatje in een picturebox zetten m.b.v. het kenmerk Picture in het eigenschappenvenster.
Je kunt ook een plaatje in een picturebox zetten als het programma al draait.
Als de naam van de picturebox Picture1 is en je wilt het plaatje SUNSET.BMP uit de windows-map er in tonen dan kan dat m.b.v. de opdracht
Picture1.Picture = Loadpicture("C:\WINDOWS\SUNSET.BMP")
Standaard wordt er in het coördinatenstelsel met Twips gewerkt. Een inch bevat 1440 twips.
Je kunt m.b.v. Scalemode die eenheid veranderen.
Picture1.Scalemode = 1 betekent: er wordt met Twips gewerkt, dat is dus de standaardmanier.
Picture1.Scalemode = 0 betekent: je kunt de eenheid zelf bepalen.
Dat doe je door bijv. Picture1.Scalewidth = 100 en Picture1.Scaleheight = 100 als opdrachten te geven.
Dat betekent dat horizontaal de picturebox in 100 eenheden is verdeeld, en vertikaal ook.
Als je dan de opdracht Line (0,0)-(100,100) geeft dan wordt de diagonaal van linksboven naar rechtsonder getekend.
M.b.v. Drawmode kun je bepalen hoe de kleuren, die over elkaar vallen, worden behandeld.
Picture1.Drawmode=13: Standaard, er wordt gewoon getekend met de voorgrondkleur, en waar getekend wordt verdwijnt de achtergrondkleur dus.
Drawmode=15: Voor- en achtergrondkleur worden gemengd
Drawmode=7: Gebruik de kleuren die in voor- of achtergrondkleur voorkomen maar niet in beide
Drawmode=4: Gebruik het tegengestelde van de voorgrondkleur
M.b.v. Drwawstyle kun je bepalen hoe lijnen worden getekend.
Picture1.Drawstyle=0 : normaal
Drawstyle=1 : streepjes
Drawstyle=2 : puntjes
Drawstyle=3 : wisselend streepjes en puntjes
Een paar methoden van een picturebox (neem aan dat de naam ervan Picture1 is) zijn:
Picture1.Print "Test" | Op de plaats van de cursor wordt het woord Test afgedrukt |
Picture1.Cls | De inhoud van de picturebox wordt gewist |
Picture1.CurrentX = 100 | De x-coördinaat van de cursor wordt 100 (vanaf de linkerrand naar rechts) |
Picture1.CurrentY = 200 | De y-coördinaat van de cursor wordt 200 (vanaf de bovenrand naar beneden) |
Picture1.Drawwidth = 2 | De breedte van de lijnen of punten die getekend worden worden twee keer zo breed als normaal |
Picture1.PSet(200,300) | Zet een punt op de plaats met coördinaten(200,300) |
Picture1.PSet(200,300),QBColor(10) | Zet een lichtgroen punt op de plaats met coördinaten(200,300) |
Picture1.Line(200,300)-(1000,800) | Teken een lijn van (200,300) naar (1000,800) |
Picture1.Line(200,300)-(1000,800),QBColor(10) | Teken een lichtgroene lijn van (200,300) naar (1000,800) |
Picture1.Line(200,300)-(1000,800),QBColor(10),B | Teken een lichtgroene rechthoek met (200,300) en (1000,800) als hoekpunten |
Picture1.Line(200,300)-(1000,800),QBColor(10),BF | Teken een lichtgroene rechthoek met (200,300) en (1000,800) als hoekpunten, die groen is opgevuld |
Picture1.FillColor = QBColor(10) | De opvulkleur waarmee vanaf nu wordt opgevuld is lichtgroen |
Picture1.Circle(1000,800),500 | Er wordt een cirkel getekend met als middelpunt (1000,800) en als straal 500 |
Picture1.Circle(1000,800),500,QBColor(10), 1,5 | Er wordt een gedeelte van een cirkel getekend, de kleur is lichtgroen |
Picture1.Circle(1000,800),500, , , ,4 | Er wordt een ellips getekend waarvan de vertikale as 500 is en de horizontale as is 4 keer zo klein als de vertikale, en het middelpunt is (1000,800) |
Picture1.Circle(1000,800),500, , , ,1/4 | Er wordt een ellips getekend waarvan de vertikale as 500 is en de horizontale vertikale as is 4 keer zo klein als de horizontale, en het middelpunt is (1000,800) |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.7 Imagebox
Een imagebox is een venster waarin een plaatje getoond kan worden.
Het lijkt veel op een picturebox, maar een imagebox heeft twee voordelen:
Als je bij de eigenschappen het kenmerk Stretch op True zet dan wordt het plaatje automatisch passend gemaakt.
Een imagebox tekent sneller iets op het scherm en gebruikt minder geheugen
Een nadeel is dat er in een imagebox geen tekst m.b.v. Print afgedrukt kan worden, en
geen tekeningen m.b.v. Pset, Line en/of Circle gemaakt kunnen worden.
Je kunt een plaatje in een imagebox zetten m.b.v. het kenmerk Picture in het eigenschappenvenster.
Je kunt ook een plaatje in een imagebox zetten als het programma al draait.
Een paar methoden van een imagebox (neem aan dat de naam ervan Image1 is) zijn:
Image1.Stretch = True | De afbeelding wordt passend gemaakt in het venster |
Image1.Picture = Loadpicture("C:\WINDOWS\SUNSET.BMP") | Het plaatje met de naam SUNSET.BMP uit de windows-map wordt in het venster getoond |
8.10.8 Listbox
Een listbox is een venster waarin een lijst wordt getoond waaruit iets gekozen kan worden door er op te klikken.
Een paar methoden van een listbox (neem aan dat de naam ervan List1 is) zijn:
List1.AddItem "Test" | Aan de lijst wordt het woord Test (onderaan) toegevoegd |
List1.AddItem "Test",3 | Aan de lijst wordt het woord Test (op de vierde plaats, de eerste plaats heeft nummer 0) toegevoegd |
g = List1.ListCount | g bevat het aantal elementen in de lijst |
t = List1.List(5) | t bevat de tekst van het zesde element van de lijst (de eerste heeft nummer 0 !)
|
List1.RemoveItem(5) | Het zesde element van de lijst wordt verwijderd |
g = List1.ListIndex | g bevat het nummer van de lijst waarop geklikt is (als er op de zesde geklikt is heeft g de waarde 5),
als nergens op geklikt is heeft g de waarde -1 |
List1.Selected(5) = True | Het zesde element van de lijst wordt blauw gekleurd, is geselecteerd |
List1.Clear | De lijst wordt gewist |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.9 Checkbox
Een checkbox is een vierkant hokje waarin een vinkje verschijnt (of juist weer verdwijnt) als je er op klikt.
Meestal heb je een aantal checkboxen onder elkaar waarin je dingen aan kunt vinken.
Je kunt meer dan één checkbox tegelijk aanvinken (bij optionbuttons of radiobuttons kan er maar één worden aangevinkt).
Een paar methoden van een checkbox (neem aan dat de naam ervan Check1 is) zijn:
Check1.Value = Checked | De checkbox is aangevinkt |
Check1.Value = Unchecked | De checkbox is niet aangevinkt |
Check1.Value = Grayed | De checkbox is (tijdelijk) niet beschikbaar |
Check1.Caption = "Bijschrift" | Het bijschrift bij de checkbox |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.10 Optionbutton
Een optionbutton is een rondje waarin een stip verschijnt (of juist weer verdwijnt) als je er op klikt.
Een optionbutton wordt ook wel een radiobutton genoemd, omdat het net zo werkt als bij een knop op de radio: als je de ene
indrukt komt de andere weer omhoog, er kan maar één tegelijk actief zijn.
Meestal heb je een aantal optionbuttons onder- of naast elkaar waarvan je er één kunt selecteren.
Denk goed om het verschil met checkboxen, bij checkboxen kun je meer dan één aanvinken).
Een paar methoden van een optionbutton (neem aan dat de naam ervan Option1 is) zijn:
Option1.Value = True | De optionbutton is aangevinkt |
Option1.Value = False | De optionbutton is niet aangevinkt |
Option1.Caption = "Bijschrift" | Het bijschrift bij de optionbutton |
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
Meestal heb je een array van optionbuttons, een aantal optionbuttons die bij elkaar horen.
Als je er bijv. 10 hebt en je wilt weten welke van de tien is aangeklikt, dan kan dat m.b.v. de volgende code:
gekozen = -1
For i = 0 to 9
if option(i) = true then gekozen = i
next i
Als de variabele gekozen daarna de waarde -1 heeft dan betekent dat dat er op geen enkele optionbutton is geklikt,
en anders bevat de variabele gekozen het nummer van de optionbutton waarop is geklikt.
Als je verschillende groepen optionbuttons wilt maken dan moet je ze per groep in een frame of picturebox plaatsen.
8.10.11 DriveListbox
Een drive-listbox geeft een lijst van diskette-stations (bijv. C-schijf, D-schijf, A-diskette, E-cdrom enz),
en er kan een drive worden uitgekozen door er op te klikken.
Je kunt er voor zorgen dat een dir-listbox de mappen toont van het gekozen station in de drive-listbox door
de volgende procedure in te voeren:
Sub Drive1_Change( )
Dir1.Path = Drive1.Drive
End Sub
Een paar methoden van een drive-listbox (neem aan dat de naam ervan Drive1 is) zijn:
g = Drive1.ListCount | g bevat het aantal elementen in de lijst, dus het aantal stations |
t = Drive1.List(1) | t bevat de naam van het tweede station (het eerste heeft nummer 0 !)
|
t = Drive1.Drive | t bevat de naam van het geselecteerde station.
|
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.12 Dir-Listbox
Een dir-listbox geeft een lijst van mappen van een bepaalde schijf (die meestal uitgekozen kan worden m.b.v. een
drive-listbox).
Je kunt er voor zorgen dat een file-listbox de bestanden toont van de gekozen map in de dir-listbox door
de volgende procedure in te voeren:
Sub Dir1_Change( )
File1.Path = Dir1.Path
End Sub
Een paar methoden van een dir-listbox (neem aan dat de naam ervan Dir1 is) zijn:
g = Dir1.ListCount | g bevat het aantal elementen in de lijst, dus het aantal mappen |
t = Dir1.List(1) | t bevat de naam van de tweede map (de eerste heeft nummer 0 !)
|
t = Dir1.Path | t bevat de naam van de geselecteerde map.
|
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.13 File-Listbox
Een file-listbox geeft een lijst van bestanden van een bepaalde map (die meestal uitgekozen kan worden m.b.v. een dir-listbox).
Je kunt er voor zorgen dat een file-listbox de bestanden toont van de gekozen map in de dir-listbox door
de volgende procedure in te voeren:
Sub Dir1_Change( )
File1.Path = Dir1.Path
End Sub
Je kunt een file-listbox ook gebruiken om er achter te komen welke bestanden er zijn, je kunt de file-listbox dan onzichtbaar maken.
Een paar methoden van een file-listbox (neem aan dat de naam ervan File1 is) zijn:
File1.Pattern = "*.gif" | De bestandenlijst bevat alleen de bestanden met extensie GIF |
File1.Readonly = true | De bestandenlijst bevat ook de read-only bestanden |
File1.Multiselect = true | Er kan meer dan één bestand uit de lijst worden geselecteerd |
g = File1.ListCount | g bevat het aantal elementen in de lijst, dus het aantal bestanden in de map |
t = File1.List(1) | t bevat de naam van het tweede bestand (het eerste heeft nummer 0 !)
|
t = File1.Filename | t bevat de naam van het geselecteerde bestand.
|
Verder heb je ook de eigenschappen Visible, Fontname, Fontsize, Backcolor enz.
Zie daarvoor bij de eigenschappen van een tekstbox
Als je een bestand wilt openen nadat er in de file-listbox op geklikt is dan moet het pad er ook bij.
Dat is File1.Path.
Maar je mag er niet van uitgaan dat de naam + pad van het bestand dan File1.Path + File1.Filename is, want dat hangt er van af of
het bestand in de hoofdmap staat of niet.
Daarom moet het zo (de naam + pad wordt in de variabele bn vastgelegd) :
If Right$(File1.Path,1) <> "\" Then
bn = File1.Path + "\" + File1.Filename
Else
bn = File1.Path + File1.Filename
End If
8.10.14 Scrollbar
Een scrollbar (schuifbalk) lijkt een beetje op een volumeknop van een stero-installatie.
Door het blokje te verschuiven geef je een groter of kleiner getal aan.
Met behulp van min en max in het propertiesvenster kun je bepalen welk getal wordt aangegeven als het blokje
helemaal links (of onder) c.q. helemaal rechts (of boven) zit.
.
Een paar methoden van een scrollbar (neem aan dat de naam ervan Hscroll1 is) zijn:
x = Hscroll1.Value | x bevat het getal dat de schuifbalk aangeeft |
Hscroll1.Max = 255 | als de schuifbalk helemaal open staat geeft hij het getal 255 aan |
Hscroll1.Min = 0 | als de schuifbalk helemaal dicht staat geeft hij het getal 0 aan |
Hscroll1.Largechange = 20 | als het schuifblokje een beetje verschoven wordt wordt de waarde met 20 vermeerderd of verminderd
|
Hscroll1.Smallchange = 5 | als er op de schuifpijl aan het uiteinde van de schuifbalk wordt geklikt
wordt de waarde met 5 vermeerderd of verminderd.
|
Verder heb je ook de eigenschappen Visible, Enabled, Width enz.
Zie daarvoor bij de eigenschappen van een tekstbox
8.10.15 Messagebox en Inputbox
Als je bijv. de opdracht MsgBox("Tik uw naam in als u verder wilt")
dan verschijnt er een berichtvenster met daarin "Tik uw naam in als u verder wilt" en een OK-knop er onder (en de naam van het
lopende programma in de titelbalk),
en dan kan de gebruiker niet eerder verder dan wanneer hij of zij op OK heeft geklikt. Daarna verdwijnt het berichtvenster
en kan de gebruiker weer verder. Maar zolang er niet op geklikt is kan de gebruiker niets anders, alle vensters zijn "bevroren"
totdat er op het berichtvenster is gereageerd.
Hoe groot de messagebox is en waar hij verschijnt bepaalt VisualBasic, daar kun je zelf niets aan veranderen.
Normaal zit er alleen een OK-knop op een messagebox.
Maar door toevoeging van een getal kun je aangeven dat er meer knoppen op moeten zitten.
En je kunt ook aangeven wat er in de titelbalk van het berichtvenster moet staan.
Als je bijv. de opdracht
x = MsgBox("Bent u een man ?", 4, "man of vrouw")
dan verschijnt er een berichtvenster met daarin "Bent u een man ?" en een Yes- en een No-knop er onder, en
in de titelbalk staat "man of vrouw".
Met behulp van de waarde van x kun je daarna bepalen of er op de yes- of op de no-knop is geklikt.
Bij yes krijgt x de waarde 6 en bij no de waarde 7.
De mogelijkheden voor het middelste getal, dat bepaalt welke knoppen er verschijnen in de messagebox, zijn:
0 | alleen OK (de standaard methode) |
1 | OK en Cancel |
2 | Abort, Retry en Ignore |
3 | Yes, No en Cancel |
4 | Yes en No |
5 | Retry en Cancel |
16 | OK en een Stop-teken |
48 | OK en een informatieteken (een i) |
Je kunt het ook nog combineren door dingen bij elkaar op te tellen.
Als je bijvoorbeeld het getal 50 gebruikt (= 48 + 2) krijg je Yes, No en Cancel-knoppen en een informatieteken (een i)
De waarde van de variabele, die aangeeft op welke knop is geklikt (hierboven x genoemd), is als volgt:
1 | OK |
2 | Cancel |
3 | Abort |
4 | Retry |
5 | Ignore |
6 | Yes |
7 | No |
Het drukken op de escape-toets heeft hetzelfde effect als het klikken op de cancel-knop.
Een Inputbox is net zoiets als een messagebox, met het verschil dat er in een inputbox nog tekst kan worden ingevoerd.
Als je bijv. de opdracht
x = InputBox("Geef je naam", "naam") geeft
dan verschijnt er een berichtvenster met daarin "Geef je naam" en daaronder een tekstvenster waarin die naam kan
worden ingevoerd, en een OK-knop er onder, en
in de titelbalk staat "naam".
De variabele x bevat het woord dat is ingevoerd.
Je kunt bij een inputbox ook bepalen waar het berichtvenster verschijnt: als je de opdracht
x = InputBox("Geef je naam", "naam","piet", 1000, 2000)
geeft dan verschijnt het venster 1000 twips van de bovenrand en 2000 twips van de linkerkant, en in het
invoervak staat alvast "piet", en dat kun je dan aanvullen en of veranderen.
8.10.16 Herhalingen, If-Then
Als je de volgende programmaregels invoert:
For i = 1 to 20
...................................
...................................
next i
dan worden de opdrachten op de stippeltjes 20 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 1 tot en met 20
Dat kun je gebruiken als je precies weet hoe vaak het moet gebeuren.
Als je de volgende programmaregels invoert:
For i = 10 to 1 step -1
...................................
...................................
next i
dan worden de opdrachten op de stippeltjes 10 keer uitgevoerd, en i doorloopt daarbij
achtereenvolgens de waarden 10 tot en met 1
Als je de volgende programmaregels invoert:
WHILE xxxxxxxxxxxxxx
...................................
...................................
WEND
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op
xxxxxxxxxxxxxx geldt.
Er wordt dus pas gestopt als de voorwaarde op xxxxxxxxxxxxxx niet meer geldt.
Als je de volgende programmaregels invoert:
DO UNTIL xxxxxxxxxxxxxx
...................................
...................................
LOOP
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd tot de voorwaarde op
xxxxxxxxxxxxxx niet meer geldt.
Als je de volgende programmaregels invoert:
DO WHILE xxxxxxxxxxxxxx
...................................
...................................
LOOP
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op
xxxxxxxxxxxxxx waar is.
Als je de volgende programmaregels invoert:
DO
...................................
...................................
LOOP WHILE xxxxxxxxxxxxxx
dan worden de opdrachten op de stippeltjes net zo lang uitgevoerd als de voorwaarde op
xxxxxxxxxxxxxx waar is, maar de opdrachten worden in ieder geval één keer uitgevoerd
Als je de volgende programmaregels invoert:
IF xxxxxxxxxxxxxx THEN
...................................
...................................
ELSE
...................................
...................................
ENDIF
dan worden de opdrachten op de eerste stippeltjesregels uitgevoerd als xxxxxxxxxxxxxx waar is
en anders worden de opdrachten op de tweede stippeltjesregels uitgevoerd.
Als je de volgende programmaregels invoert:
Select Case cijfer
Case cijfer < 4 Msgbox("Dit was niet zo best")
Case cijfer < 5.5 Msgbox("Net onvoldoende")
Case Else Msgbox("Goed zo")
End Select
dan worden de opdrachten na cijfer < 4 uitgevoerd als cijfer < 4 waar is
de opdrachten na cijfer < 5.5 worden uitgevoerd als cijfer < 5.5 waar is
en anders worden de opdrachten na else uitgevoerd.
8.10.17 Bestand lezen en /of schrijven
Als je iets uit een bestand, dat op de schijf staat en dat "bestand.txt" heet, wilt inlezen begin je met de opdracht:
Open "bestand.txt" for input as #1
Als je daarna een regel wilt inlezen uit het bestand dan regel je dat m.b.v. de opdracht:
line input #1, r
De variabele r bevat dan die regel.
Als je daarna die opdracht line input #1, r nog eens geeft
dan wordt de volgende regel ingelezen.
Als je klaar bent met inlezen moet je nog de opdracht close #1 geven.
Als je alle regels wilt inlezen, en bewaren in het array r(i) dan kan dat m.b.v. de opdrachten:
Open "bestand.txt" for input as #1
i=1
While not eof(1)
line input#1,r(i)
i=i+1
wend
close#1
Je mag i.p.v. line input ook gewoon input gebruiken, maar dan wordt niet per regel ingelezen, maar tot de eerstvolgende
komma, of puntkomma of enterteken.
Als je iets naar een bestand (bijv. met de naam "test.txt") wilt schrijven dan doe je dat m.b.v. de opdrachten:
Open "test.txt" for output as #1
print #1, regel
...............
close#1
8.10.18 Kleuren
Je kunt in VB op twee manieren kleuren aangeven.
M.b.v. RGB en QBColor.
Met QBColor heb je de keuze uit maar 16 kleuren, die allemaal met een nummer worden aangegeven.
Voorbeeld:
Text1.Forecolor = QBColor(4) zorgt er voor dat de tekstkleur rood wordt
Label1.Backcolor = QBColor(8) zorgt er voor dat de achtergrondkleur grijs wordt
Picture1.Line(200,300)-(1000,800),QBColor(10) zorgt er voor dat er een lichtgroene lijn van (200,300) naar (1000,800) wordt getekend.
Nummer | Kleur (met QBColor) |
0 | zwart |
1 | blauw |
2 | groen |
3 | cyaan (blauw-groen) |
4 | rood |
5 | violet (paars) |
6 | geel (legergroen) |
7 | wit (lichtgrijs) |
8 | grijs (donkergrijs) |
9 | lichtblauw |
10 | lichtgroen |
11 | lichtcyaan |
12 | lichtrood |
13 | lichtviolet |
14 | lichtgeel |
15 | helder wit |
Met RGB heb je de keuze uit meer dan 16 miljoen kleuren, die je m.b.v. drie getallen tussen 0 en 255 aan kunt geven.
Het eerste getal geeft de hoeveelheid rood aan, het tweede getal de hoeveel groen en het derde getal de hoeveelheid blauw.
Voorbeeld:
Text1.Forecolor = RGB(255,0,0) zorgt er voor dat de tekstkleur rood wordt
Label1.Backcolor = QBColor(100,100,100) zorgt er voor dat de achtergrondkleur grijs wordt
Picture1.Line(200,300)-(1000,800),RGB(0,255,0) zorgt er voor dat er een groene lijn van (200,300) naar (1000,800) wordt getekend.
|