Leren programmeren met Visual Basic 6.0 Roger Frans met cd-rom campinia media
Frans, Roger Leren programmeren met Visual Basic 6.0 / Roger Frans; Geel: Campinia Media vzw, 2001; 370 p; index; 29 cm; gelijmd. ISBN: 90.356.1150.0; NUGI 854; UDC 681.3.06; Wettelijk depot België: D/2001/3941/13 Campinia Media vzw Kleinhoefstraat 4 B 2440 GEEL (Belgium) Tel.: (+32) 014/59 09 59 Fax: (+32) 014/59 03 44 e-mail: <info@campiniamedia.be> URL: <www.campiniamedia.be> Copyright 2001: No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher. Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, print, microfilm of op welke andere wijze ook, zonder voorafgaande schriftelijke toestemming van de uitgever.
Inleiding De programmeertaal Basic (Beginners All Purpose Symbolic Instruction Code) werd in 1965 ontwikkeld aan het Darthmouth College. De taal werd ontworpen om te programmeren op kleine systemen. Het was immers de tijd dat de eerste microcomputers het daglicht zagen. De oorspronkelijke taal Basic heeft heel wat kritiek moeten slikken. Het was een taal die weinig structuren bezat en die niet erg krachtig was. In de loop der jaren is Basic uitgegroeid tot een volwaardige programmeertaal. Visual Basic 6.0 is een programmeeromgeving die gebaseerd is op de taal Basic. Visual Basic 6.0 is een product van de firma Microsoft. Een deel van de taal, Visual Basic for Applications, wordt ook gebruikt in de andere producten van Microsoft (b.v. Excel, Word, enz.). Mede hierdoor kent de taal een groot succes. Deze cursus is geen gewone cursus over Visual Basic. Het is in eerste instantie een cursus programmeren voor lezers die geen of zeer weinig ervaring hebben met het programmeren. In de cursus wordt m.a.w. heel wat aandacht besteed aan de technieken van het programmeren: de klassieke programmastructuren, tabellen, verwerken van sequentiële bestanden, enz. Leren programmeren met Visual Basic 6.0 is een doe-cursus. Dit betekent dat u de cursus doorneemt terwijl u voor de computer zit. U neemt per hoofdstuk de cursustekst door. Daarna maakt u de oefeningen die achteraan elk hoofdstuk zijn opgenomen. Bij de cursus hoort een cd-rom. Op deze cd-rom vindt u bestanden die u nodig hebt om de voorbeelden en oefeningen te kunnen uitwerken. Ook de voorbeelden uit de verschillende hoofdstukken, staan op de diskette. Op de cd-rom bevindt zich ook een bestand LeesMij.doc met last minute informatie. U kunt de inhoud van het bestand lezen door te dubbelklikken op het bestand. Ik hoop dat deze cursus u vertrouwd mag maken met het programmeren en met Visual Basic 6.0. Indien u opmerkingen hebt die een latere uitgave kunnen verbeteren, kunt u die steeds kwijt aan de auteur. Roger Frans november 2001 Inleiding - 1
2 Leren programmeren met Visual Basic 6.0
Inhoudsopgave INLEIDING...1 INHOUDSOPGAVE...3 1 PROGRAMMEREN EN PROGRAMMEERTALEN...15 1.1 Inleiding... 15 1.2 Gegevens versus informatie... 15 1.3 Hardware en software... 16 1.4 Een computer verwerkt gegevens tot informatie... 16 1.5 Algoritmen... 17 1.6 Programma en programmeren... 19 1.7 Categorieën en karakteristieken van programmeertalen... 19 1.7.1 Machinetalen... 19 1.7.2 Lagere programmeertalen of assembleertalen...20 1.7.3 Hogere programmeertalen... 20 1.7.4 Vertaalprogramma s... 21 1.8 Enkele belangrijke hogere programmeertalen... 22 1.8.1 FORTRAN... 22 1.8.2 COBOL... 22 1.8.3 RPG... 23 1.8.4 BASIC... 23 1.8.5 PASCAL... 24 1.8.6 C en C++... 24 1.8.7 Java... 24 1.9 Fasen in het ontstaan van een bronprogramma... 25 1.9.1 De probleemdefinitie... 25 1.9.2 De probleemanalyse... 25 1.9.3 Het opstellen van een schema... 25 1.9.4 Het schrijven van het bronprogramma... 26 1.9.5 Het testen van het programma... 26 1.9.6 De documentatiefase... 26 1.10 Visual Basic... 26 1.10.1 Succesverhaal... 26 1.10.2 Verschillende versies... 27 1.11 Afspraken... 28 2 KENNISMAKEN MET VISUAL BASIC...29 2.1 Inleiding... 29 2.2 Het voorbeeld H2VB1... 29 2.2.1 Probleemdefinitie... 29 2.2.2 Probleemanalyse... 30 2.2.3 Schema... 31 2.2.4 Bronprogramma en korte bespreking... 31 2.3 Visual Basic starten... 32 2.4 Formulieren... 34 2.5 Het projectvenster... 35 2.6 Form Layout... 35 2.7 De toolbox... 35 2.8 Het eigenschappenvenster... 35 2.9 SDI of MDI... 36 2.10 De gebruikersinterface maken... 37 2.10.1 Een object toevoegen door te slepen... 37 2.10.2 Een object toevoegen door te dubbelklikken... 37 Inhoudsopgave - 3
2.10.3 Verplaatsen van het label...38 2.10.4 Een object van grootte wijzigen...38 2.10.5 Een object toevoegen door het te kopiëren...38 2.10.6 Een object verwijderen...39 2.10.7 De posities van de controls vergrendelen...39 2.11 Eigenschappen van een object instellen...39 2.11.1 De eigenschap Name...39 2.11.2 De eigenschap Caption...40 2.12 Tekstvakken aanbrengen...41 2.13 Selectie van meerdere objecten...41 2.14 Het project bewaren...41 2.15 Het programma uitvoeren...43 2.16 Een Command Button...43 2.17 Programmacode toevoegen...44 2.17.1 Het venster voor programmacode...44 2.17.2 Help van Visual Basic...46 2.17.3 Commentaar...46 2.17.4 Declaratie van variabelen...47 2.17.5 De waarde aflezen uit een tekstvak...47 2.17.6 Een waarde in een tekstvak plaatsen...47 2.17.7 Opnieuw uitvoeren van het programma...47 2.18 De helpfunctie...48 2.19 Het voorbeeld verder afmaken...48 2.20 Tabvolgorde en tabulatorstops...49 2.21 De code bekijken vertrekkend vanaf het projectvenster...49 2.22 Commentaar...50 2.23 Variabelen...51 2.23.1 Een variabele...51 2.23.2 Datatypes...51 2.23.3 Declareren van variabelen...52 2.23.4 Niet verplicht, tenzij......52 2.24 Operatoren...53 2.24.1 Rekenkundige operatoren...53 2.24.2 Operatoren voor tekenreeksen...54 2.25 Functies...54 2.25.1 Conversiefuncties...54 2.25.2 Val-functie...54 2.25.3 Str-functie...55 2.26 Problemen als...55 2.27 Naamgeving...56 2.28 Terugblik...57 2.29 Oefeningen...57 3 EEN FOUTJE MEER OF MINDER... 61 3.1 Inleiding...61 3.2 Het voorbeeld H3VB1...61 3.2.1 Probleemdefinitie...61 3.2.2 Probleemanalyse...62 3.2.3 Schema...62 3.3 Gebruikersinterface en programmacode...62 3.3.1 Gebruikersinterface...62 3.3.2 Programmacode...63 3.3.3 Bewaren en uitvoeren...64 3.4 Een InputBox...64 3.4.1 Uitleg...64 3.4.2 Syntax...64 3.4.3 Twips...64 4 Leren programmeren met Visual Basic 6.0
3.5 Een berichtvenster (MsgBox)... 65 3.5.1 Probleemdefinitie... 65 3.5.2 Programmacode... 65 3.5.3 De functie MsgBox... 65 3.5.4 De instructie MsgBox... 67 3.6 Bijkomende eigenschappen... 67 3.6.1 De formuliereigenschappen Height en Width... 67 3.6.2 De positie van een formulier... 68 3.6.3 Het WITH-statement... 68 3.7 Compileren en uitvoeren van een programma... 69 3.7.1 Compileren van een programma... 69 3.7.2 Een programmagroep maken... 69 3.8 Fouten... 71 3.9 Schrijffouten... 71 3.9.1 Het project Schrijffout.vbp... 71 3.9.2 De instelling Require Variabele Declaration... 72 3.10 Syntax-fouten... 73 3.10.1 Het project WillekeurigGetal... 73 3.10.2 De instelling Auto Syntax Check... 74 3.10.3 Willekeurige getallen... 74 3.11 Run time fouten... 74 3.11.1 Het project RunTimeFout... 74 3.11.2 Het project RunTimeFout2... 75 3.12 Logische fouten... 76 3.13 Mijn programma, een bug?... 77 3.14 Step... 77 3.14.1 Het project EersteLetterInHoofdletter... 77 3.14.2 Step Into en Step Over... 78 3.14.3 Step Into: voorbeeld... 78 3.14.4 Step Over: voorbeeld... 79 3.15 Breakpoints... 80 3.16 Quick watch... 81 3.17 Locals Window... 82 3.18 Immediate Window... 82 3.18.1 Rechtstreeks testen in het venster Immediate Window... 82 3.18.2 Afdrukken vanuit een programma... 83 3.19 Constanten en constantendeclaratie... 84 3.19.1 Eigen constanten... 84 3.19.2 Ingebouwde constanten... 84 3.20 Terugblik... 85 3.21 Oefeningen... 85 4 DE SELECTIE...89 4.1 Inleiding... 89 4.2 Het voorbeeld H4VB1... 89 4.2.1 Probleemdefinitie... 89 4.2.2 Probleemanalyse... 90 4.2.3 Schema... 90 4.3 De selectie... 91 4.3.1 Definitie en betekenis... 91 4.3.2 Eenzijdige selectie... 91 4.4 Het programma... 91 4.4.1 Bronprogramma en korte bespreking... 91 4.4.2 Aanmaken van het groepsvak en de selectierondjes... 93 4.4.3 Besturingselementen... 93 4.4.4 Bij het laden van het formulier... 94 4.4.5 De knop Sluiten... 94 Inhoudsopgave - 5
4.4.6 Aanmaken project...94 4.5 Het IF-statement...95 4.6 Logische uitdrukkingen (Conditions)...96 4.6.1 Relationele operatoren...96 4.6.2 Logische operatoren...96 4.6.3 Logische operatoren in Visual Basic...97 4.7 De functie Round()...98 4.8 Het voorbeeld H4VB2...99 4.8.1 Probleemdefinitie...99 4.8.2 Probleemanalyse...99 4.8.3 Pseudo code...99 4.8.4 Bronprogramma en korte bespreking...100 4.9 Aanmaken van het project...101 4.9.1 Ontwerpen van het formulier...101 4.9.2 Programmacode en uitvoeren...102 4.10 De methode SetFocus...103 4.11 Randomize en Rnd...103 4.11.1 Randomize...103 4.11.2 Rnd-functie...103 4.11.3 Getallen tussen...104 4.12 De Int- en Fix-functie...104 4.12.1 De Int-functie...104 4.12.2 De Fix-functie...104 4.13 Meer over het type Variant...105 4.13.1 Null en Empty...105 4.13.2 De functie VarType...105 4.13.3 De functie TypeName...106 4.14 Standaard eigenschappen van controls...106 4.15 Kopiëren en plakken...106 4.16 Aanpassen van een werkbalk...107 4.17 Afdrukken van een scherm en/of code...107 4.18 Terugblik...108 4.19 Oefeningen...108 5 FOR/NEXT, EEN EENVOUDIGE ITERATIE... 113 5.1 Inleiding...113 5.2 Het voorbeeld Optelsommen...113 5.2.1 Probleemstelling...113 5.2.2 Probleemanalyse...114 5.2.3 Schema...114 5.3 De iteratie met teller...114 5.3.1 Definitie en betekenis...114 5.3.2 Enkele voorbeelden...115 5.3.3 Belangrijke opmerking...115 5.4 Het programma...115 5.5 De interface maken...117 5.5.1 Scherm een titel en naam geven...117 5.5.2 Een figuur opnemen...117 5.5.3 Opdrachtknop...117 5.5.4 De eigenschappen Visible en Multiline...117 5.5.5 Opdrachtcode ingeven en uittesten...118 5.6 De iteratie For / Next...118 5.6.1 Uitleg For / Next...118 5.6.2 Syntax For / Next...119 5.7 Bijkomende voorbeelden...119 5.7.1 For-instructie met output in het debugvenster...119 5.7.2 For-instructie met uitvoer in een tekstvak...120 6 Leren programmeren met Visual Basic 6.0
5.7.3 For-instructie met negatieve stapgrootte... 120 5.7.4 Geneste For-statements... 121 5.7.5 Onderbreken van een lus... 121 5.8 De methode Print... 121 5.8.1 Syntax... 121 5.8.2 Spc()... 122 5.8.3 Tab()... 122 5.9 Beep... 122 5.10 De gebeurtenis Resize... 122 5.10.1 De gebeurtenis Resize... 122 5.10.2 De methode Move... 123 5.10.3 ScaleHeight, ScaleWidth... 123 5.10.4 Bewaren van het project in een nieuwe map... 123 5.11 Dynamisch laden van een figuur... 124 5.11.1 LoadPicture... 124 5.11.2 Pad naar de toepassing... 125 5.12 Terugblik... 125 5.13 Oefeningen... 126 6 DE ITERATIE, AL OF NIET GEWOON...129 6.1 Inleiding... 129 6.2 Het voorbeeld H5VB1... 129 6.2.1 Probleemdefinitie... 129 6.2.2 Probleemanalyse... 129 6.2.3 Schema... 130 6.3 De gewone iteratie... 130 6.3.1 Definitie en betekenis... 130 6.3.2 Bijkomend voorbeeld... 130 6.3.3 Vergelijking met een iteratie met teller... 131 6.4 Het programma... 131 6.5 De interface maken... 132 6.5.1 Scherm een titel en naam geven... 132 6.5.2 Tekstvakken... 132 6.5.3 Opdrachtknoppen... 133 6.6 De iteratie Do While en Do Until... 133 6.6.1 Verschillende vormen... 133 6.6.2 Iteratie met onderbreking... 133 6.6.3 Belangrijke opmerking... 134 6.6.4 While / Wend... 134 6.7 Voorbeeld van Do / Loop Until... 134 6.7.1 Probleemdefinitie... 134 6.7.2 Probleemanalyse... 135 6.7.3 Pseudo code... 135 6.7.4 Programmacode... 135 6.7.5 Aanmaken van het project... 135 6.8 Voorbeeld van Do Until / Loop... 136 6.8.1 Probleemdefinitie... 136 6.8.2 Probleemanalyse... 136 6.8.3 Pseudo code... 136 6.8.4 Programmacode... 137 6.8.5 Aanmaken van het project... 138 6.9 Spelen met de tijd... 138 6.9.1 Probleemdefinitie... 138 6.9.2 Pseudo code... 138 6.9.3 Programmacode... 138 6.9.4 Aanmaken van het project... 139 6.10 Het besturingselement Timer... 139 6.10.1 Probleemstelling... 139 Inhoudsopgave - 7
6.10.2 De Timer-control...140 6.10.3 Programmacode...140 6.11 Datum- en tijdfuncties...141 6.11.1 Systeemdatum en -tijd...141 6.11.2 Dag, maand en jaar...141 6.11.3 DateAdd...141 6.11.4 DateDiff...142 6.11.5 DatePart...143 6.11.6 DateSerial...143 6.12 Terugblik...143 6.13 Oefeningen...144 7 DE MEERVOUDIGE SELECTIE... 147 7.1 Inleiding...147 7.2 Inleidend voorbeeld...147 7.2.1 Probleemdefinitie...147 7.2.2 Probleemanalyse...147 7.2.3 Schema...148 7.3 De meervoudige selectie...149 7.4 Het programma...150 7.4.1 Bronprogramma en korte bespreking...150 7.5 Een menu opbouwen...151 7.5.1 Het project Optelsommen...151 7.5.2 De Menu Editor...151 7.5.3 Basishandelingen bij het opbouwen van menu s...152 7.5.4 Shortcut keys...153 7.5.5 Checked...153 7.5.6 Enabled...154 7.5.7 Een horizontale streep...154 7.5.8 Opbouw van het menu bekijken...154 7.6 Testen op het vinkje...155 7.7 De overige menukeuzen...156 7.7.1 De menukeuze Help / Info...156 7.7.2 De menukeuze Bestand / Einde...156 7.8 Select Case statement...156 7.9 Bijkomend voorbeeld: Horizontale schuifbalk...157 7.9.1 Probleemdefinitie...157 7.9.2 Schema...158 7.9.3 Ontwerp van het scherm...158 7.9.4 Programma...158 7.9.5 Grotere sprongen...159 7.9.6 Verticale schuifbalk...159 7.10 De functie RGB()...159 7.11 Terugblik...160 7.12 Oefeningen...160 8 EEN TOEPASSING MET MEERDERE FORMULIEREN... 165 8.1 Inleiding...165 8.2 Kreatura (H8VB1)...165 8.3 Het formulier frmintro...166 8.3.1 De menustructuur...166 8.3.2 Programmacode...167 8.3.3 Een ander formulier openen...167 8.3.4 Een formulieren laden...168 8.3.5 Programmacode bij het laden van het formulier...168 8.4 Het formulier frmmedewerker...168 8.4.1 Een formulier toevoegen...168 8.4.2 Ontwerp van het formulier...169 8 Leren programmeren met Visual Basic 6.0
8.4.3 Programmacode... 169 8.4.4 De methode Hide... 170 8.5 Globale variabelen... 170 8.6 Het formulier frmartikel... 172 8.6.1 Ontwerp van het formulier... 172 8.6.2 Programmacode bij het activeren... 173 8.6.3 Programmacode bij de knop Annuleren...173 8.6.4 Programmacode bij de knop Bewaren...173 8.6.5 Berekenen van BTW en Eenheidsprijs met BTW... 174 8.7 Het formulier frmklant... 175 8.7.1 Ontwerpen van het formulier... 175 8.7.2 Programmacode bij het activeren... 176 8.7.3 De programmacode achter de knop Bewaren... 176 8.7.4 De programmacode achter Annuleren... 176 8.8 Startformulier... 177 8.9 Bewaren van het project... 177 8.10 De eigenschap Locked... 178 8.11 De functie Format... 178 8.11.1 Weergave van getallen... 179 8.11.2 Weergave van tijden en datums... 181 8.11.3 Strings... 182 8.12 Meer functies die gebruikt worden bij strings...183 8.12.1 De functie Left()... 183 8.12.2 De functie Right()... 183 8.12.3 De functie Mid()... 183 8.12.4 De functie Len()... 184 8.12.5 De functie LCase()... 184 8.12.6 De functie UCase()... 184 8.13 End... 184 8.14 Terugblik... 185 8.15 Oefeningen... 186 9 MODULES EN PROCEDURES...189 9.1 Inleiding... 189 9.2 Modules... 189 9.2.1 Form module... 189 9.2.2 Standard module... 189 9.2.3 Class module... 190 9.3 Procedures... 190 9.3.1 Event procedures... 190 9.3.2 Subprocedures... 190 9.3.3 Functieprocedures... 191 9.3.4 Property procedures... 191 9.4 Private, Public en Friend, Static... 192 9.5 Een functieprocedure... 192 9.5.1 Een zelfgedefinieerde functie... 192 9.5.2 Het formulier ontwerpen... 192 9.5.3 Een functie oproepen... 193 9.5.4 Een procedure toevoegen... 193 9.5.5 Argumenten... 194 9.5.6 Een functie in een algemene module... 194 9.6 Een subprocedure... 194 9.6.1 Een eigen subprocedure... 194 9.6.2 Het formulier frmhoofdscherm ontwerpen... 195 9.6.3 Een procedure in een algemene module... 196 9.6.4 Het formulier frmanderemunt... 196 9.7 Argumenten van een procedure... 197 9.7.1 Syntax... 197 Inhoudsopgave - 9
9.7.2 Een voorbeeld van ByVal en ByRef...197 9.7.3 Optionele parameters...199 9.7.4 Een onbekend aantal argumenten...200 9.8 De functie IsMissing...200 9.9 Het statement For Each / Next...201 9.10 Argumenten in event procedures...201 9.10.1 De gebeurtenis KeyPress...201 9.10.2 De waarden van KeyAscii...202 9.11 De functies Asc() en Chr()...202 9.11.1 Van ASCII tot ANSI naar UNICODE...202 9.11.2 De functie Asc()...203 9.11.3 De functie Chr()...203 9.12 Oproepen van procedures in andere modules...203 9.12.1 Oproepen van procedures in forms...203 9.12.2 Oproepen van procedures in een standaard module...204 9.13 Afronden van getallen...204 9.14 Procedures in pseudo code...205 9.14.1 Subprocedure...205 9.14.2 Functieprocedure...206 9.14.3 Andere benamingen...207 9.15 Terugblik...207 9.16 Oefeningen...207 10 ARRAYS... 211 10.1 Inleiding...211 10.2 Het voorbeeld: Engelse woorden oefenen...211 10.2.1 Probleemdefinitie...211 10.2.2 Probleemanalyse...211 10.2.3 Schema...212 10.2.4 Bronprogramma en korte bespreking...212 10.2.5 Ontwerp van het formulier...213 10.3 Arrays...214 10.3.1 De statements Dim, Private en Public m.b.t. arrays...214 10.3.2 Option Base...215 10.4 Tonen van de ingangen van een array...215 10.4.1 Probleemdefinitie...215 10.4.2 Schema...216 10.4.3 Bronprogramma...216 10.4.4 Ontwerp van het formulier...217 10.4.5 Oefeningen...217 10.5 Arrays en procedures...217 10.5.1 Probleemdefinitie...217 10.5.2 Probleemanalyse...218 10.5.3 Schema...218 10.5.4 Bronprogramma...218 10.5.5 Ontwerp van het formulier...219 10.6 Arrays en het For Each / Next-statement...220 10.7 De functies LBound(), UBound()...221 10.8 Zoeken in een (niet gesorteerde) array...221 10.8.1 Probleemdefinitie...221 10.8.2 Analyse...221 10.8.3 Schema...222 10.8.4 Bronprogramma...222 10.8.5 Ontwerp van het formulier...224 10.9 Omwisselen van de waarden van twee variabelen...224 10.9.1 Probleemdefinitie...224 10.9.2 Probleemanalyse...224 10.9.3 Schema...225 10 Leren programmeren met Visual Basic 6.0
10.9.4 Bronprogramma... 225 10.9.5 Oefeningen... 225 10.10 Sorteren van een array... 225 10.11 Sorteren met de selectiemethode... 226 10.11.1 Probleemdefintie... 226 10.11.2 Probleemanalyse... 226 10.11.3 Schema... 226 10.11.4 Bronprogramma... 227 10.11.5 Ontwerp van het formulier... 228 10.12 Binaire zoekmethode in een gesorteerde array... 229 10.12.1 Probleemdefinitie... 229 10.12.2 Probleemanalyse... 229 10.12.3 Schema... 229 10.12.4 Bronprogramma... 230 10.12.5 Ontwerp van het formulier... 232 10.13 Dynamische arrays... 233 10.13.1 Dynamische arrays... 233 10.13.2 Syntax... 233 10.14 De functies Array() en IsArray()... 233 10.14.1 Syntax... 233 10.14.2 Voorbeeld... 234 10.15 Terugblik... 234 10.16 Oefeningen... 234 11 MEERDIMENSIONALE ARRAYS...239 11.1 Inleiding... 239 11.2 Voorbeeld van een tweedimensionale array... 239 11.2.1 Probleemdefinitie... 239 11.2.2 Probleemanalyse... 239 11.2.3 Schema... 240 11.2.4 Bronprogramma... 240 11.2.5 Ontwerp van het formulier... 242 11.3 De functies Space... 242 11.4 Voorbeeld van een driedimensionale array...243 11.4.1 Grafische voorstelling... 243 11.4.2 Probleemdefinitie... 243 11.4.3 Probleemanalyse... 243 11.4.4 Schema... 244 11.4.5 Bronprogramma... 244 11.5 Dynamische meerdimensionale arrays... 245 11.6 Terugblik... 245 11.7 Oefeningen... 245 12 CONTROL ARRAYS...249 12.1 Inleiding... 249 12.2 Control arrays bij menu s... 249 12.2.1 Inleidend voorbeeld... 249 12.2.2 Ontwerp van het formulier... 249 12.2.3 Een control array bij een menu... 250 12.2.4 Programmacode... 250 12.3 Een control array... 251 12.3.1 Het voorbeeld... 251 12.3.2 Ontwerp van het formulier... 251 12.3.3 Programmacode bij het laden van het formulier... 252 12.3.4 Programmacode bij de opdrachtknop Toon... 252 12.3.5 Uittesten... 253 12.4 Bijkomend voorbeeld... 253 12.4.1 Het project Optelsommen... 253 Inhoudsopgave - 11
12.4.2 Ontwerp van het venster...254 12.4.3 Programmacode...254 12.5 Application Wizard...255 12.5.1 Wat?...255 12.5.2 Starten van de Application Wizard...255 12.5.3 Starten van de toepassing...259 12.6 Terugblik...260 12.7 Oefeningen...261 13 SEQUENTIËLE BESTANDEN... 265 13.1 Inleiding...265 13.2 Sequentiële bestanden...265 13.3 Een voorbeeld...265 13.3.1 Probleemdefinitie...265 13.3.2 Probleemanalyse en schema s...266 13.3.3 Programmacode...268 13.3.4 Alternatieve programmacode...269 13.3.5 Ontwerp van het formulier...271 13.4 Sequentiële bestanden lezen in Visual Basic...271 13.4.1 De statements Open en Close...271 13.4.2 Het Input #-statement...272 13.4.3 Line Input #...273 13.4.4 De functie Input()...273 13.4.5 De functie Lof()....275 13.5 On Error Goto...275 13.5.1 Trappable errors...275 13.5.2 Het statement On Error...276 13.5.3 Het statement Resume...277 13.5.4 Het object Err...277 13.5.5 De functie Error...278 13.6 Jackson-notatie...278 13.6.1 Sequentie...278 13.6.2 Selectie en meervoudige selectie...278 13.6.3 Iteratie...278 13.6.4 Voorbeeld...279 13.7 Uitbreiding van het voorbeeld...279 13.7.1 Probleemdefinitie...279 13.7.2 Ontwerp van het formulier...280 13.7.3 De programmacode achter de knop Toevoegen...281 13.7.4 De programmacode achter de knop Verwijderen...282 13.7.5 De programmacode achter de menukeuze Opslaan...283 13.7.6 De programmacode achter de menukeuze Inlezen...283 13.8 Schrijven naar een sequentieel bestand in Visual Basic...284 13.8.1 Het Write #-statement...284 13.8.2 Het Print #-statement...285 13.9 Eigenschappen en methoden m.b.t. een list box...285 13.9.1 De methode Clear...285 13.9.2 De methode AddItem...285 13.9.3 De eigenschap ListIndex...286 13.9.4 De methode RemoveItem...286 13.9.5 De eigenschap ListCount...286 13.9.6 De eigenschap List()...286 13.9.7 De eigenschap Selected()...286 13.10 De functie Trim...286 13.11 Common Dialog Control...287 13.11.1 Probleemdefinitie...287 13.11.2 Probleemanalyse...287 13.11.3 Ontwerp van het formulier...288 12 Leren programmeren met Visual Basic 6.0
13.11.4 Een nieuw bestand... 289 13.11.5 Opslaan Als... 290 13.11.6 De procedure Bewaar... 291 13.11.7 Bestand / Opslaan... 292 13.11.8 Een bestand selecteren in de common dialog control... 292 13.11.9 Inlezen van het bestand... 292 13.11.10 De menukeuze Sluiten... 293 13.11.11 De menukeuze Help... 294 13.12 Laatste uitbreiding... 294 13.12.1 Probleemdefinitie... 294 13.12.2 Oproepen van het formulier... 294 13.12.3 Het formulier invoegen en afwerken... 295 13.12.4 Programmacode achter de knop Opgave... 295 13.12.5 De knop Controleer... 296 13.12.6 Programmacode bij het activeren van het formulier... 296 13.12.7 Terug naar het eerste formulier... 297 13.12.8 Programmacode bij Bestand / Sluiten... 297 13.13 De Common Dialog Control... 297 13.13.1 Dialoogvensters... 297 13.13.2 De eigenschap CancelError... 297 13.14 Terugblik... 297 13.15 Oefeningen... 298 14 GROEPSONDERBREKING BIJ SEQUENTIËLE BESTANDEN...305 14.1 Inleiding... 305 14.2 Groepsonderbreking... 305 14.2.1 Omschrijving... 305 14.2.2 Inleidend voorbeeld... 305 14.2.3 Jackson en pseudo code... 306 14.2.4 Programmacode... 308 14.2.5 Ontwerp van het formulier... 310 14.3 De functie String()... 310 14.4 Groepsonderbreking op twee niveaus... 310 14.4.1 Probleemdefinitie... 310 14.4.2 Jackson-schema en uitwerking in pseudo code... 311 14.4.3 Bronprogramma... 314 14.4.4 Ontwerp van het formulier... 316 14.5 Meerdere sequentiële bestanden... 316 14.5.1 Probleemdefinitie... 316 14.5.2 Schema s... 317 14.5.3 Bronprogramma... 318 14.5.4 Ontwerp van het formulier... 319 14.6 FreeFile... 319 14.7 Terugblik... 320 14.8 Oefeningen... 320 15 DRIVELISTBOX, DIRLISTBOX, FILELISTBOX, OLE...323 15.1 Inleiding... 323 15.2 DriveListBox, DirListBox, FileListBox... 323 15.3 Uitgewerkt voorbeeld... 324 15.3.1 Probleemdefinitie... 324 15.3.2 Ontwerp van het formulier... 324 15.3.3 Synchroniseren van de drie controls... 324 15.4 Ole... 326 15.5 Terugblik... 327 15.6 Oefeningen... 328 16 DATABASES...331 16.1 Inleiding... 331 Inhoudsopgave - 13
16.2 Een database ontwerpen...331 16.2.1 De database maken...331 16.2.2 Tabel maken...332 16.2.3 Velden van de tabel...333 16.3 Gegevens ingeven via Data Manager...333 16.4 Toegang tot de database in Visual Basic met DataControl...334 16.5 Recordsets...337 16.6 Gegevens toevoegen...337 16.7 Andere databases...338 16.8 Een tweede tabel aanmaken...338 16.9 Ontwerpen van het formulier...339 16.9.1 Basiscontrols...339 16.9.2 Data Bound List controls...340 16.9.3 De control Timer...341 16.9.4 De code achter de knop cmdsluiten...341 16.9.5 De opdrachtknoppen In en Uit...342 16.9.6 Het programma runnen...342 16.10 Verschillende methodes...343 16.10.1 Verplaatsen van de recordwijzer...343 16.10.2 Toevoegen van een record...343 16.10.3 Wijzigen van een record...343 16.10.4 Verwijderen van een record...343 16.10.5 Zoeken naar een bepaald record...343 16.10.6 Het aantal records tellen...344 16.11 Data Bound Grid...344 16.12 Data Form Wizard...345 16.13 Terugblik...349 16.14 Oefeningen...350 17 EEN PROGRAMMA VERDELEN... 351 17.1 Inleiding...351 17.2 Een splash screen...351 17.3 Starten van een toepassing vanuit een procedure...352 17.3.1 De procedure Main...352 17.3.2 Starten met Sub Main...352 17.4 Een tijdsvertraging inbouwen...353 17.5 Naam en versienummer van een programma...354 17.5.1 Bij het laden...354 17.5.2 Instellen...354 17.6 Een pictogram voor het programma...355 17.7 Installatiediskettes maken met een wizard...355 17.8 Installeren van het programma...361 17.9 Programma terug verwijderen...363 17.10 Opnieuw een package maken...363 17.11 Oefeningen...363 APPENDIX A AFSPRAKEN M.B.T. NAAMGEVING... 365 APPENDIX B DE TOOLBAR... 369 APPENDIX C DE TOOLBOX... 371 TREFWOORDENREGISTER... 373 14 Leren programmeren met Visual Basic 6.0