Hoofdstuk 4: Nieuwe objecten



Vergelijkbare documenten
Hoofdstuk 4: Nieuwe objecten

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 3: Keuzestructuren

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 9: Menu s toevoegen

Hoofdstuk 7: Werken met arrays

Hoofdstuk 1: Een eerste Visual Basic project

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 1: Een eerste Visual Basic project

Hoofdstuk 7: Werken met arrays

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 6: Zelf functies maken

Een eerste applicatie

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Datum, Tijd en Timer-object

1 Werken met (keuze)lijstjes: de control listbox

Dieper in Visual Basic.Net

Opdracht Informatica Tutorial Visual Basic

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Formulieren maken met Dreamweaver CS 4

VAN HET PROGRAMMEREN. Inleiding

6.2 VBA Syntax. Inleiding Visual Basic

Lab Webdesign: Javascript 7 april 2008

Studio Visual Steps Een formulier maken

Info-books. Toegepaste Informatica. Deel 3d: Gegevensbeheer met Access Boekhouden-informatica Informaticabeheer. BI3d. Jos Gils Erik Goossens

Formulieren maken met Dreamweaver CS 4/CS 5

Inhoudsopgave Visual Basic 6.0

Derde Delphi Programma verkenning

Info-books. Toegepaste Informatica. Deel 40 : Gegevensbeheer en algoritmen in Access HA40. Jos Gils Erik Goossens

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Inform 5-6. Toegepaste Informatica. Boekhouden-informatica Informaticabeheer. Deel 5c: Programmeren voor een bedrijfseconomische

Programmeren: Visual Basic

Overzicht van de standaard vraagtypes van CheckMarket

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Systeemontwikkeling, Hoofdstuk 5, Formulieren maken in MS Access 2010

Parallelle Poort Aansturen Met Visual Basic

Offective > CRM > Vragenlijst

Handleiding CMS-systeem website

21 Macro s Macro s opnemen Macro's uitvoeren

Speelronde 1. Speelronde 2. Speelronde 3. Vrijdag 6 augustus 2010 Roda JC FC Twente

Programmeeropgaven. Sem Prog DD

5.6 Verschillende soorten besturingselementen.

In deze leeropdracht leer je properties (of eigenschappen) van een component te veranderen met behulp van het properties panel.

Inhoudsopgave. Module 2 Geavanceerde formulieren

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

HTML. Formulieren. Hans Roeyen V 3.0

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

1) Een sequentieel bestand schrijven

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Android apps met App Inventor 2 antwoorden

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

1. WAT STAAT ER OP DE BORD HET LEERBORD TESTEN DE PC-VERBINDING TESTEN... 6

Info-books. Toegepaste Informatica. Deel 9c: Elektronisch publiceren FrontPage AL9c. Jos Gils Erik Goossens

9.18 Macro s: oefeningen

CELLICA DATABASE VOOR IPAD USER GUIDE. Product Versie: 4.7

Macro's in OpenOffice.org

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Elbo Technology BV Versie 1.1 Juni Gebruikershandleiding PassanSoft

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

NAS 106 NAS gebruiken met Microsoft Windows

9.19 Macro s: oefeningen

Normaliseren van tabellen Praktische oefeningen

GPS Instructie MC de Kraats. Probleemloos gebruik maken van Garmin GPS Navigatie op de motor

Hoofdstuk 7 Configuratie Bestanden

Een formulier ontwerpen

1. Inleiding van het.net programmeerplatform

Handleiding EnquĂȘtemodule. Contents

Programmeren Het gesloten boek examen 1.1

Inhoud. VBA Excel 2010

Interactions Module OTYS Recruiting Technology. Versie 2.1

BESTURINGS- ELEMENTEN EN FORMULIEREN

Visual Basic door ir. C.Daniels 1

Hoofdstuk 1: Het Excel Dashboard* 2010

Een expressie zoals leeftijd>=65 wordt een boolean expressie genoemd. Een boolean expressie kan dus de waarde true of de waarde false geven

Variabelen en statements in ActionScript

Access. Module 0. Access, versie 97 (UK) Nummer: 012 ( ) The Courseware Company

In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip:

Mijn eerste ADO.NET applicatie

Client configuratie voor Synapse voor huisartsen

SWOA cursus Webdesign. Les 1

Programmeren klas 4. Opdracht PSD Visual Basic Code Code met Inputbox i.p.v. TextBox 1. Lees een getal LEES g. DIM kw AS INTEGER DIM kw AS INTEGER

Cursus Access voor Beginners - Hoofdstuk 9

3.1.6 Nieuwe lijst toevoegen

10.1 Inleiding. Formulierkoptekst [From Header] Paginakoptekst [Page Header] Detailsectie [Detail] Paginavoettekst [Page Footer]

Zen Cart Attributen (artikel opties)

Programmeren in Excel VBA. Karel Nijs 2010/09

Windows applicaties met VB.NET VB Express 2010

Handleiding voor bloemenboek (open boek)- PP 2007

Movicon 11. Visualisatie op VIPA Touch Screens Van de VIPA PLC: CPU315 & CPU313. F. Rubben Movicon 11 op VIPA Touch Screens 1

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Zalendatabank Installatie- en gebruikershandleiding

Programmeren: Visual Basic

Strings en string-functies

Transcriptie:

Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk 4: Nieuwe objecten 4.0 Leerdoel In dit vierde hoofdstuk van de cursus Programmeren in Visual Basic leer je: - kennis maken met de volgende onderdelen van een Visual Basic project: keuzelijsten (comboboxes) keuzerondjes (radiobuttons) groepeervakken (groupboxes) keuzevakjes (checkboxes) schuifbalken (scrollbars) - nieuwe gebeurtenissen in een project beschrijven met programmacode, zoals: tekst uit een keuzelijst lezen de waarde van keuzerondjes gebruiken de waarde(n) van keuzevakjes gebruiken waarden toekennen en ontlenen aan schuifbalken - enkele algemene regels voor het programmeren We doen dat aan de hand van de voorbeelden: A. De voetbalexpert B. De agressiemeter Met dit hoofdstuk ben je, afhankelijk van je tempo, ongeveer 2 lesuren van 50 minuten bezig. 38

4.1 De keuzelijst met (invoervak) De keuzelijst is een lijst met vaste, voorgeschreven items. Andere keuzemogelijkheden dan in de lijst staan vermeld zijn er niet. Omdat de werking van de keuzelijst verder hetzelfde gaat als de keuzelijst met invoervak bespreken we het gebruik van dit object in Visual Basic projecten. Een keuzelijst met invoervak heeft de mogelijkheid om naast te kiezen uit een lijst van items zelf een ander item in te typen. Een voorbeeld is hieronder weergegeven in het project De voetbalexpert 1. Als je een keuze hebt gemaakt uit een lijst met voetbalclubs geeft een druk op de knop het resultaat van het afgelopen weekeinde: Geef het formulier de volgende eigenschappen ( [Properties] ): naam [ (Name) ] frmvoetbalexpert tekst [ Text ] De voetbalexpert We plaatsen nu eerst de keuzelijst met invoervak. Plaats de keuzelijst ( [ ComboBox ] ) uit de werkbalk ( [ General ] ) op het formulier. Geef de keuzelijst de volgende eigenschappen ( [ Properties ] ): Naam [ (Name) ] cmbfavoriet Lijst [ Items ] Ajax AZ Feyenoord PSV Twente Hiermee heb je dus een keuzelijst aangemaakt waarin verschillende voetbalclubs als keuzemogelijkheden voorkomen. 39

Plaats vervolgens: - het label lblfavoriet met het opschrift Selecteer je favoriete voetbalclub. - de knop btnresultaat met het opschrift Toon resultaat club - het label lblresultaat zonder opschrift. Voeg aan de knop btnresultaat de volgende code toe: Private Sub btnresultaat_click() Dim club, uitvoer As String club = cmbfavoriet.text Select Case club Case Is = "Ajax" uitvoer = "Ajax - Heracles: 5-2" Case Is = "AZ" uitvoer = "AZ - Twente: 2-1" Case Is = "Feyenoord" uitvoer = "Feyenoord - NEC: 1-0" Case Is = "PSV" uitvoer = "PSV - Utrecht: 5-1" Case Is = "Twente" uitvoer = "AZ - Twente: 2-1" End Select lblresultaat.text = uitvoer Zoals je ziet kan je ook uit een keuzelijst met invoervak met de instructie club = cmbfavoriet.text (geselecteerde) tekst halen. 40

4.2 Keuzerondjes In plaats van met een keuzelijst (met of zonder invoervak) had het project De voetbalexpert er ook zo uit kunnen zien: In deze versie, De voetbalexpert 2, maken we gebruik van keuzerondjes. De werking daarvan wordt weer uitgelegd aan de hand van de programmacode. Eerst dienen we de gebruikersinterface aan te passen. Kopieer het volledige project De voetbalexpert1 naar De voetbalexpert2. Open het project De voetbalexpert2 en verwijder cmbfavoriet en lblfavoriet. We plaatsen nu eerst een groepeervak op het formulier. Plaats een groepeervak ( [ Groupbox ] ) uit de werkset ( [ Toolbox ] ) op het formulier. Geef het groepeervak de volgende eigenschappen ( [ Properties ] ): Naam [ (Name) ] grpfavoriet Tekst [ Text ] Selecteer je favoriete voetbalclub. Plaats in het frame een keuzerondje ( [ Radiobutton ] ) uit de werkbalk ( [ General ] ). Geef het keuzerondje de volgende eigenschappen ( [ Properties ] ): Naam [ (Name) ] rbtajax Tekst [ Text ] Ajax Plaats op vergelijkbare manier de keuzerondjes rbtaz, rbtfeyenoord, rbtpsv en rbttwente in het groepeervak. Het meest interessante werk komt nu: hoe dienen we in de programmacode om te gaan met keuzerondjes? 41

Wijzig de programmacode van de knop btnresultaat als volgt: Private Sub cmdresultaat_click() Dim uitvoer As String If rbtajax.checked = True Then uitvoer = "Ajax - Heracles: 5-2" If rbtaz.checked = True Then uitvoer = "AZ-Twente: 2-1" If rbtfeyenoord.checked = True Then uitvoer = "Feyenoord - NEC: 1-0" If rbtpsv.checked = True Then uitvoer = "PSV - FC Utrecht: 5-1" If rbttwente.checked = True Then uitvoer = "AZ - Twente: 2-1" lblresultaat.text = uitvoer Zoals je ziet wordt steeds gekeken of een keuzerondje de waarde waar heeft bij de instructie: If rbtajax.checked = True Then... Als een keuzerondje de waarde waar heeft (dat wil zeggen: het rondje is geselecteerd) dan wordt aan de variabele uitvoer een tekst toegekend, die later in lblresultaat wordt afgedrukt. 42

4.3 Selectievakjes Een volgende gedaante van het project, De voetbalexpert 3, is: In deze versie van De voetbalexpert maken we gebruik van selectievakjes. Het grote verschil tussen selectievakjes en keuzerondjes is dat bij het gebruik van keuzerondjes steeds maar één optie kan worden geselecteerd en dat bij het gebruik van selectievakjes steeds meerdere opties kunnen worden geselecteerd. Allereerst passen we de gebruikersinterface aan op het gebruik van selectievakjes. Verwijder de keuzerondjes uit het groepeervak grpfavoriet. Plaats in het frame een selectievakje ( [ CheckBox ] ) uit de werkset ( [ Toolbox ] ). Geef het selectievakje de volgende eigenschappen ( [ Properties ] ): Naam [ (Name) ] chkajax Tekst [ Text ] Ajax Plaats op vergelijkbare manier de selectievakjes chkaz, chkfeyenoord, chkpsv en chktwente in het groepeervak. Er moeten nu meerdere resultaten weergegeven moeten kunnen worden. De gebruiker kan tenslotte om de resultaten van meerdere clubs vragen. Het ligt dan ook meer voor de hand om een (Multiline) tekstvak (TextBox) te gebruiken om de resultaten in weer te laten geven. Verwijder de het label lblresultaat en vervang dit door een (Multiline) tekstvak txtresultaat. Ook nu weer rijst de vraag: hoe dienen we in de programmacode om te gaan met selectievakjes? 43

Wijzig de programmacode van de knop cmdresultaat als volgt: Private Sub btnresultaat_click() If chkajax.checked = True Then txtresultaat.text += vbcrlf & "Ajax - Heracles: 5-2" If chkaz.checked = True Then txtresultaat.text += vbcrlf & "AZ-Twente: 2-1" If chkfeyenoord.checked = True Then txtresultaat.text += vbcrlf & "Feyenoord - NEC: 1-0" If chkpsv.checked = True Then txtresultaat.text += vbcrlf & "PSV - FC Utrecht: 5-1" If chktwente.checked = True Then txtresultaat.text += vbcrlf & "AZ - Twente: 2-1" Zoals je ziet wordt ook nu steeds gekeken of een selectievakje is geselecteerd. Dat wordt echter niet gedaan door te kijken of het selectievakje de waarde waar heeft maar of het de waarde 1 heeft. If chkajax.checked = True Then... Als een selectievakje de waarde waar heeft (dat wil zeggen: het vakje is geselecteerd) dan wordt in het tekstvak txtresultaat de uitslag van de geselecteerde club bijgeschreven. 44

4.4 Schuifbalken Een laatste object waar we in dit hoofdstuk kennis mee maken is de schuifbalk (scrollbar). We onderscheiden horizontale en verticale schuifbalken. In het project dat hieronder is afgebeeld, De agressiemeter, dient de gebruiker met een horizontale schuifbalk weer te geven wat zijn toestand is. Een label geeft de waarde aan die de schuifbalk aanneemt. Na een druk op de knop krijgt de gebruiker een advies. Plaats een schuifbalk ( [ Hscrollbar ] ) uit de werkset ( [ Toolbox ] ) op het formulier. Je vindt de schuifbalk in de Toolbox onder All Windows Forms. Geef het frame de volgende eigenschappen ( [ Properties ] ): Naam [ (Name) ] hscwaarde Minimum [ Minimum ] 0 Maximum [ Maximum ] 100 Naast deze eigenschappen kan je in het eigenschappenlijstje terugvinden wat de (begin)waarde is van de schuifbalk en met welke stapgrootte de waarde van de schuifbalk bij het opschuiven verandert. Plaats rondom de schuifbalk labels met de teksten: - Geef met een waarde uw toestand aan: - aperelaxed, - 0, - 100 - woedend Een bijzonder label is het label lblwaarde waarin de waarde van de schuifbalk weergegeven wordt Zet dit label (zonder tekst) rechts van de tekstlabel: Geef met een waarde uw toestand aan: Plaats tenslotte de knop btnadvies en het label (zonder opschrift) lbladvies. Tijd voor de programmacode die gepaard gaat met het gebruik van de schuifbalk. 45

Allereerst moet worden geprogrammeerd dat de schuifbalk hscwaarde en het label lblwaarde aan elkaar gekoppeld zijn. Dubbelklik op het formulier frmagressiemeter. Voeg de volgende code toe. (Deze code wordt uitgevoerd bij het laden van het formulier.) Private Sub Form_Load() lblwaarde.text = hscwaarde.value Deze opdracht zorgt er voor dat ook het label de beginwaarde 0 krijgt. Dubbelklik op de schuifbalk hscwaarde. Voeg de volgende code toe. (Deze code wordt uitgevoerd bij het veranderen van waarde van de horizontale schuifbalk.) Private Sub hscwaarde_scroll() lblwaarde.text = hscwaarde.value Deze subroutine zorgt er voor dat de waarde van het label lblwaarde mee verandert met de waarde van de schuifbalk hscwaarde. Ten slotte voegen we aan de knop btnadvies programmacode toe die er voor zorgt dat er een advies in het label lbladvies wordt weggeschreven: Dubbelklik op de knop btnadvies. Voeg de volgende code toe. (Deze code wordt uitgevoerd bij het klikken op de knop) Private Sub cmdadvies_click() Dim agressiewaarde As Integer agressiewaarde = hscwaarde.value If agressiewaarde <= 50 Then lbladvies.text = "Advies: Stay cool!" Else lbladvies.text = "Advies: Neem eens een weekje vrij!" We gaan de opgedane kennis omtrent het gebruik van keuzelijsten met invoervak, keuzerondjes, selectievakjes en schuifbalken toepassen in een volgende opdracht, het project De uitgebreide autoverzekering.vrijwel alle objecten uit Visual Basic die je tot nu toe hebt leren kennen komen in dit project terug. 46

4.5 Een uitgebreide autoverzekering We gaan verder met het PSD uit opgave 3.5. De jaarpremie van een autoverzekering wordt bepaald op basis van de volgende programmastructuur: Lees Nieuwwaarde_auto (in euro s) Basisbedrag = 1000 * ( Nieuwwaarde_auto / 10 000 ) Lees Aantalkilometers Aantalkilometers < 10000 Ja Nee Aantalkilometers < 20000 Ja Nee Basisbedrag = Basisbedrag * 1,1 Basisbedrag = Basisbedrag * 1,2 Lees Aantaljaren_schadevrij (maximaal 10) Kortingspercentage = 5 * Aantaljaren_schadevrij Lees Leeftijd Leeftijd < 25 Ja Nee Kortingspercentage = Kortingspercentage + 10 Lees Aantalinwoners Aantalinwoners > 100 000 Ja Nee Kortingspercentage = Kortingspercentage + 5 Jaarpremie = Basisbedrag * ( 1 Kortingspercentage / 100 ) Daarnaast is het mogelijk om tegen een geringe meerprijs nog enkele opties in je verzekering mee te nemen: Audioapparatuur tot 1000 euro Overige bezittingen tot 1000 euro Inzittenden tot 4 personen Rechtsbijstandsverzekering tegen een meerprijs van 10 euro per jaar tegen een meerprijs van 10 euro per jaar tegen een meerprijs van 5 euro per jaar tegen een meerprijs van 5 euro per jaar 47

We gaan een volgende interface bouwen: TextBox: txtnieuwwaarde HScrollBar: scrschadevrij Label: lbljarenschadevrij ComboBox: cmbkilometers GroupBox: grpwoonplaats RadioButton: rbtveelinwoners RadioButton: rbtweiniginwoners Groupbox grpleeftijd met RadioButtons: rbtjonger25 rbtouder25 Button btnbepaalpremie Groupbox grpopties met CheckBoxes: chkaudio chkbezittingen chkinzittenden chkrechtsbijstand De uitvoer, de bijbehorende jaarpremie, dient na een druk op de knop te verschijnen in een MessageBox. Maak de bovenstaande gebruikersinterface en voeg de nodige programmacode toe. Noem het formulier frmuitgebreideautoverzekering en het project De Uitgebreide Autoverzekering 48