Strings en string-functies



Vergelijkbare documenten
Datum, Tijd en Timer-object

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

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 1: Een eerste Visual Basic project

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 1: Een eerste Visual Basic project

1) Een sequentieel bestand schrijven

Hoofdstuk 4: Nieuwe objecten

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

Hoofdstuk 4: Nieuwe objecten

6.2 VBA Syntax. Inleiding Visual Basic

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

1 Werken met (keuze)lijstjes: de control listbox

Programmeren: Visual Basic

Hoofdstuk 9: Menu s toevoegen

Programmeren: Visual Basic

Parallelle Poort Aansturen Met Visual Basic

Een eerste applicatie

Visual Basic door ir. C.Daniels 1

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Inhoudsopgave Visual Basic 6.0

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 7: Werken met arrays

Variabelen en statements in ActionScript

II. ZELFGEDEFINIEERDE FUNCTIES

Hoofdstuk 6: Zelf functies maken

Opdracht Informatica Tutorial Visual Basic

VAN HET PROGRAMMEREN. Inleiding

Dieper in Visual Basic.Net

9.19 Macro s: oefeningen

Cursus Onderwijs en ICT. Programmeren met Visual Basic

1. Inleiding van het.net programmeerplatform

Blog-Het gebruik van variabelen in Excel VBA

[Microsoft Access 2007 Een eigen database maken] 16 oktober 2009

Hoofdstuk 3: Keuzestructuren

Derde Delphi Programma verkenning

ADRESSEN-BEHEER ( )

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

Handleiding Mijneigenweb.nl

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

Briefhoofd maken in Word. Handleiding van Helpmij.nl

SNEL WERKEN MET EXCEL

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Versie Datum Status Auteur(s) Opmerking september 2015 Concept Carol Esmeijer

DELPHI VOOR ELEKTRONICI. Deel 2: Een rekenmachine programmeren CURSUS

8. Adresetiketten maken

9.18 Macro s: oefeningen

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Macro's in OpenOffice.org

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

OEFENINGEN PYTHON REEKS 1

Programmeren (1) Examen NAAM:

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen;

waarin u gegevens in verschillende het wel goed doen Internet Opleidingscentrum

Sorteren, groeperen en totaliseren

File: M.Peters / Powerpoint 1

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1

Tutorial 1, Delphi: Geldspraak

P O W E R P O I N T - onderdeel van Microsoft Office 2000 pakket (nl) De Windows versies van Powerpoint kunnen onderling afwijken

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

INSTALLATIE IN PRINT INSTALLEREN. Aan de slag met Communicate In Print

Formulieren maken met Dreamweaver CS 4/CS 5

Computer Club Bodegraven

OEFENINGEN PYTHON REEKS 1

Afdrukken in Calc Module 7

Handleiding Zorgverzekeraar Winmens versie 7.29

Hoofdstuk 8 - Snelfiches Word

HANDLEIDING FRIREC. Versie 1.2.2

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

Foto s verkleinen en Foto s in elkaar over laten lopen

Labo 2 Programmeren II

Module 2: Wat is Scratch?

Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen...

Etiketten maken en printen (word 2010).

Opmaken en printen van adresetiketten in Microsoft Word 2007

Welk programma gebruiken we? Om onze foto s te verkleinen gebruiken we het programma IrfanView. Het icoontje van IrfanView ziet er als volgt uit:

OEFENINGEN PYTHON REEKS 1

Normaliseren van tabellen Praktische oefeningen

Formulieren maken met Dreamweaver CS 4

TEKSTVERWERKEN, DE BASIS

De tekstverwerker. Afb. 1 de tekstverwerker

1. Open het programma KompoZer Het grote witte vlak is een nog lege webpagina. Deze gaan we nu van inhoud voorzien.

Tekstverwerking. Wat gaan we leren? Opdracht: Geavanceerde opmaak. Jen Kegels, Eveline De Wilde, Inge Platteaux, Tamara Van Marcke

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

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

Inleiding. 3.. Widget maken Widget publiceren. 8...Widget aanpassen. 9...Mini widget Banners

Gebruikershandleiding Edit

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Instellen Labelprinter

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

Versturen van vanuit een Delphi VCL toepassing

Scratch voor mobiel: AppInventor

Les 1. Digitale Media - DTP 1

Toelichting upgrade naar DNN 6.2.2

Handicom. Symbol for Windows. Image Manager. (Versie 4) Handicom, 2011, Nederland

Een affiche maken in WORD met het sjabloon (Op PC)

Zelf een spel maken met GameMaker Les 3: Vijanden en levens

Transcriptie:

VI. Strings en string-functies A. Wat zijn strings? Strings zijn eigenlijk teksten. U kunt die bewaren in een stringvariabele. Een tekst bestaat uit karakters zoals letters, cijfers, leestekens, Een karakter wordt door de computer inwendig voorgesteld door een getal van 8 bits (1 of 0), dit stelt getallen voor tussen 0 en 255. Zo stelt de binaire waarde 0100 0001 voor een computer het getal 65 voor, of als hij het als een karakter moet tonen een hoofdletter A. Deze overeenkomst wordt samengevat in een internationale norm: de ASCII-tabel (zie bijlage) Enkele karakters hierin kunnen niet afgedrukt worden maar dienen uitsluitend voor de besturing van monitors of printers, zoals het karakter met waarde 12, dat op een printer een nieuw blad inschuift, of op een monitor het scherm leegmaakt. De declaratie van een string-variabele is als volgt: Dim Tekst as String Stel dat u de inhoud van de variabele wilt gelijk zetten aan de tekst: Champions League, dan doet u dat in een programma als volgt: Tekst = "Champions League" B. String-functies van Visual Basic VB komt met een heel aantal methoden om deze strings aan te passen, of er bewerkingen mee uit te voeren. We zullen eerst met enkele functies kennis maken. Meer functies en uitleg vindt u in VB-Help. Gebruik voor de oefeningen het Immediate window. 1) & Voegt strings samen. (engels: concatenation)? ABC & 123? ABC & 99 &! 2) Left(string, n) Geeft n karakters van de linker karakters van de string? left( Diepenbeek,4) a = Hasselt? left(a,3) Visual Basic door ir. C.Daniels VI-1

3) Right(string,n) Geeft n karakters vanaf de rechterkant van de string? right( Diepenbeek,4) a = Hasselt?Right(a,3) 4) Mid (string, s, n) Geeft n karakters te tellen vanaf karakter s in de string.? Mid( Diepenbeek,4,3) a = Hasselt?Mid(a,4,2) Kunt u dus ook gebruiken als u bijvoorbeeld één letter van een string nodig heeft: Zo heeft Mid( Hasselt,5,1) als resultaat de letter e. 5) Asc(karakter) Geeft de ASCII-waarde van een karakter.?asc( A ) a = 0?Asc(a)?Asc( XYZ ) 6) Chr(getal) Omgekeerde van Asc. Geeft het karakter dat hoort bij de ASCII-waarde getal.?chr(65) a = 102?Chr(a) 7) Str(getal) Maakt van een getal een tekst. Als u dat probeert gebeurt er precies niets, maar toch is het getal omgevormd tot een string.?str(165) a =456 Visual Basic door ir. C.Daniels VI-2

?Str(a)?mid(str(123),3,1) geeft 2, terwijl u zoudt denken dat dit 3 moet geven waarom zou dat zijn?? Als u het niet vindt, probeer dan eens? ABC +str(123). 8) Val(tekst) Als tekst een getal bevat, wordt dit getal uit de tekst omgezet in een long variabele.?val( 123 )?Val( 123ABC )?Val( ABC123 ) 9) InStr([getal],string1,string2) Deze functie zoekt de plaats van string2 in string1 te beginnen vanaf plaats getal. Als u getal weglaat, wordt gestart vanaf het eerste karakter. (Als u iets tussen rechte haken zet, betekent dit dat u het mag weglaten.)?instr( ABCDEFG, DE )?InStr( ABCDEFG, 12 )?InStr(5, ABCDEFG, ABC ) 10) StrComp(String1,String2) Vergelijkt String1 met String2. - Als ze gelijk zijn wordt een nul teruggegeven. - Als String1 > String2 wordt 1 teruggegeven. - Als String1 < String2 wordt -1 teruggegeven.?strcomp( ABC, ABC )?StrComp( 678, 123 )?StrComp( ABCDEFG, ABC )?StrComp( ABC, ABCDEF )?StrComp( ABC, ) (staat een spatie tussen twee ) 11) Format Drukt datums, getallen en strings volgens een bepaald formaat. Wordt best uitgelegd aan de hand van enkele voorbeelden. Probeer uit in het Immediate venster en noteer het resultaat:?format(date, "Long Date")? Format(Time, "h:m:s") Tijd = #17:04:23# Datum = #January 27, 1993#? Format(Tijd, "hh:mm:ss AMPM")? Format(Datum, "dddd, mmm d yyyy") Visual Basic door ir. C.Daniels VI-3

?Format(5459.4, "##,##0.00")?Format(334.9, "###0.00")?Format(5, "0.00%")?Format("HALLO", "<")?Format("Dat is het!", ">") C. Procedures en functies Event-procedures zijn we al tegengekomen. Telkens u op een knop klikte werd het event Click aangeroepen van die knop. Maar we kunnen ook procedures schrijven die los staan van een event. Maar soms heb u een bepaald programmastukje dikwijls nodig. Dan maakt u daar best een apart subprogramma van. Er zijn twee soorten subprogramma s: - Sub-procedures - Functie-procedures of kortweg Functies 1) Sub-procedures Een Sub-procedure ziet er uit als volgt: Public Private Sub MijnProcedure (parameters). programmacode Op de betekenis van Private en Public komen we later terug. Vanuit het hoofdprogramma roept u deze procedure aan door de programmacode: Mijnprocedure parameters Een voorbeeld maakt dit duidelijker. Stel dat we een procedure willen schrijven die uw naam afdrukt op het formulier. Public DrukNaam(Naam as String) Print "Mijn naam is " & naam Stel dat deze code moet uitgevoerd worden als we op de Knop cmdbutton1 klikken, dat ziet de event-code er zo uit: Private Sub cmdbutton1_click ' Roep de procedure Druknaam aan met parameter "Janssens" DrukNaam "Janssens" Parameters moogt u meegeven, maar u kunt ook procedures schrijven zonder parameters, of met meerdere parameters. Visual Basic door ir. C.Daniels VI-4

Voorbeeld 1 van een Sub-procedure: het VisiteKaartje. Maak een nieuw project aan met de naam Visitekaartje. Sla het weer op in zijn eigen directory VisiteKaartje. De bedoeling is de nodige gegevens voor een adreskaartje in te tikken, en deze gegevens door het programma mooi te laten schikken: Project Visitekaartje in werking Plaats de volgende objecten op het formulier: Labels txtvoornaam txtnaam txtadres txtpostnummer cmdpreview txtwoonplaats cmdwissen PictureBox1 Visual Basic door ir. C.Daniels VI-5

Geef de objecten de volgende eigenschappen mee: Object Eigenschap Form Name: Form1 Caption: Visitekaartje Heigth: 4185 Width: 6240 5 Labels Name: Label1 tot Label5 Caption: Type je voornaam: Type je familinaam: Adres: Woonplaats: TextBox TextBox TextBox TextBox TextBox CommandButton CommandButton Picturebox Postnummer Name: txtvoornaam Multiline: False Text: (geen) TabIndex: 0 Tabstop: true Name: txtnaam Multiline: False Text: (geen) TabIndex: 1 Tabstop: true Name: txtadres Multiline: False Text: (geen) TabIndex: 2 Tabstop: true Name: txtwoonplaats Multiline: False Text: (geen) TabIndex: 3 Tabstop: true Name: txtpostnummer Multiline: False Text: (geen) TabIndex: 4 Tabstop: true Name: cmdpreview Caption: Preview TabIndex: 5 Tabstop: True Name:cmdWissen Caption: Wissen TabIndex: 6 Tabstop: True Name: Picture1 BackColor: &H00FFFFFF (wit) Visual Basic door ir. C.Daniels VI-6

In de event-procedure cmdpreview_click komt volgende code: Private Sub cmdpreview_click() Dim VoorNaam, Naam, Adres, Woonplaats, Postnummer As String 'Haal de nodige gegevens uit de tekstvelden VoorNaam = txtvoornaam.text Naam = txtnaam.text Adres = lbladres.text Woonplaats = txtwoonplaats.text Postnummer = txtpostnummer.text 'Roep de sub-procedure Afdrukken aan Afdrukken VoorNaam, Naam, Adres, Woonplaats, Postnummer Met de lijn Afdrukken VoorNaam, Naam, Adres, Woonplaats, Postnummer Roepen wij de sub-procedure Afdrukken aan met als parameters de gegevens, nodig om het visitekaartje af te drukken. Deze sub-procedure moeten we zelf helemaal schrijven. Plaats ze onder het gedeelte (general)(declarations) als volgt: Private Sub AfDrukken(nVoorn, nnaam, nadres, _ nwoonplaats, npostnummer As String) Dim tekst As String 'Maak de PictureBox leeg Picture1.Cls 'Zet de eigenschappen van het lettertype Picture1.Font = "Palace Script MT" 'lettertype Picture1.Font.Size = Picture1.ScaleHeight / 3 Picture1.Font.Italic = True 'cursief 'lettergrootte 'Druk bovenaan voornaam en naam tekst = nvoorn & " " & nnaam Picture1.CurrentX = (Picture1.ScaleWidth / 2) (Picture1.TextWidth(tekst)/2) Picture1.CurrentY = 0 Picture1.Font.Bold = True 'vetjes aan Picture1.Print tekst ' Adres tekst = nadres Picture1.CurrentX = (Picture1.ScaleWidth / 2) (Picture1.TextWidth(tekst)/2) Picture1.CurrentY = Picture1.TextHeight(tekst) Picture1.Font.Bold = False 'vetjes uit Picture1.Print tekst 'Postnummer en woonplaats Visual Basic door ir. C.Daniels VI-7

tekst = npostnummer & nwoonplaats Picture1.CurrentX = (Picture1.ScaleWidth / 2) (Picture1.TextWidth(tekst)/2) Picture1.CurrentY = 2 * Picture1.TextHeight(tekst) Picture1.Font.Bold = False 'vetjes uit Picture1.Print tekst 'Afdrukken in de Picturebox Uitleg: De instructie Cls maakt het formulier of de PictureBox leeg. De instructie Print tekst druk de inhoud van tekst af in het formulier of de picturebox. We moeten nog twee problemen oplossen: de juiste plaatsing van de tekst, en het lettertype. - De plaatsing van de tekst: We gebruiken hiervoor de eigenschappen CurrentX en CurrentY van een Picturebox. Ook in een formulier kunt u deze eigenschappen gebruiken. Geeft de plaats aan waar een tekst of een afbeelding in het object gaat plaatsen. Denk eraan dat de Y-coordinaat van boven naar beneden wijst! CurrentY CurrentX Tekst Om de tekst te horizontaal centreren moeten we dus de volgende berekening maken: Tekstlengte Marge Te centreren tekst Breedte van de PictureBox Uit de figuur blijkt dat: Marge = ( Breedte PictureBox) ( Tekstlengte) 2 2 Visual Basic door ir. C.Daniels VI-8

Of in VB-code: Picture1.CurrentX = (Picture1.ScaleWidth/2) (Picture1.TextWidth(tekst)/2) ScaleWidth: breedte van het object PictureBox of van een Form ScaleHeight: hoogte van het object PictureBox of van een Form - Het aanpassen van het lettertype en grootte De teksteigenschappen kunne we aanpassen door de eigenschappen van het font te veranderen: Het lettertype (Font) kiezen: Picture1.Font = "Palace Script MT" De tekstgrootte (Size) kiezen we gelijk aan 1/3 van de hoogte van de PictureBox Picture1.Font.Size = Picture1.ScaleHeight / 3 De tekst cursief maken: Picture1.Font.Italic = True De tekst vetjes maken: Picture1.Font.Bold = True Met de knop cmdwissen worden alle velden en de picturebox leeggemaakt. Schrijf zelf die code. Experimenteer met andere lettertypes, en font-eigenschappen! Zoek ze op in de Help! Hoe kunt u zorgen voor een witte tekst op een blauwe achtergrond? Voorbeeld 2 van een Subprocedure: Conversie van Eenheden. De bedoeling van dit voorbeeld is een snelheid uitgedrukt in een bepaalde eenheid (meter/sec bijvoorbeeld) om te rekenen naar andere grootheden zoals Mijl/seconde of Knopen. Het project Conversie in werking Visual Basic door ir. C.Daniels VI-9

Maak een nieuw project Conversie aan, en geef het weer zijn eigen map. Plaats de onderstaande objecten op het ontwerpformulier: Label ListBox TextBox Eigenschappen van de objecten CommandButton Object Form Label TextBox CommandButton ListBox Eigenschappen Name: Form1 Caption: Conversie van Snelheden Height:2040 Width:3400 Name:lblTekst Caption: Waarde: Name: txtwaarde Text: (geen) Multiline: false Name: cmdbereken Caption:Berekenen Name:listEenheden De nodige omrekeningsfactoren plaatsen we als constanten in het gedeelte bovenaan (General)(Declarations) Visual Basic door ir. C.Daniels VI-10

De resultaten van de berekening tonen we in een apart venster, form2. Om dat venster bij te voegen aan het project klikt u in het menu op Project Add Form. U krijgt dan onderstaande dialoog. Kies voor Form in het tabblad New en klik op Openen. Uw project bevat nu twee formulieren, Form1 en Form2. Selecteer nu Form2. Visual Basic door ir. C.Daniels VI-11

Plaats een CommandButton op het formulier: En geef deze objecten de volgende eigenschappen Object Form CommandButton Name:cmdOK Caption: OK Eigenschappen Name:Form2 Autoredraw: true BackgroundColor: Palette: wit Caption: (niets) ControlBox: False Font: Arial 10p Height: 2800 StartUpPosition: Manual Width: 4800 Zorg dat de twee formulieren Form1 en Form2 zichtbaar zijn, dan kunt u met de muis in het Form Layout Window de juiste plaats van de beide formulieren bij het openen aangeven: Visual Basic door ir. C.Daniels VI-12

Klik op de OK-knop en plaats volgende code in de eventprocedure cmdok_click van Form2: Selecteer nu terug Form1. Het event Form_Load van Form1 vullen we als volgt aan: Private Sub Form_Load() ' De keuzemogelijkheden aan de ListBox toevoegen listeenheden.additem ("Km/sec") listeenheden.additem ("Km/uur") listeenheden.additem ("Meter/sec") listeenheden.additem ("Meter/min") listeenheden.additem ("Mijl/uur") listeenheden.additem ("Mijl/sec") listeenheden.additem ("Voet/sec") listeenheden.additem ("Knoop") listeenheden.additem ("Lichtsnelheid") Met de eigenschap AddItem van de ListBox vullen we de keuzelijst in. Private Sub cmdbereken_click() Dim Waarde, conv As Double If listeenheden.listindex = -1 Then 'Waarschuwing als u geen eenheid kiest MsgBox "Kies de eenheid!" ElseIf Not IsNumeric(txtWaarde.Text) Then 'Waarschuwing als u geen geldig getal invult MsgBox "De ingegeven waarde is niet geldig!" Else 'OK, nu kunnen we gaan berekenen 'de waarde uit de textbox halen Waarde = Val(txtWaarde.Text) Visual Basic door ir. C.Daniels VI-13

'kies de conversie factor naargelang de gekozen eenheid Select Case listeenheden.listindex Case 0 conv = Kilometer_per_seconde Case 1 conv = Kilometer_per_uur Case 2 conv = Meter_per_seconde Case 3 conv = Meter_per_minuut Case 4 conv = Mijl_per_uur Case 5 conv = Mijl_per_seconde Case 6 conv = Voet_per_seconde Case 7 conv = Knoop Case 8 conv = Lichtsnelheid End Select 'Bereken conv, Waarde Call Bereken(conv, Waarde) 'En toon het ingevulde formulier Form2.Show 1, Me End If Uitleg: - De eigenschap ListIndex geeft het volgnummer van het gekozen item uit de ListBox. Als u geen item aanklikt wordt de waarde 1 teruggegeven. Met de aanroep Call Bereken(conv, Waarde) roepen we de procedure Bereken aan, met als parameters de omrekeningsfactor conv en de waarde uit de TextBox. - Met de instructie Form2.Show 1, Me openen we formulier 2 modaal. Een modaal formulier moet u eerst sluiten voor u kunt verder werken in het originele formulier form1. Dit wordt aangegeven met de waarde 1 achter de instructie Show. De Sub-procedure Bereken moeten we helemaal zelf intypen in het gedeelte (General)(Declarations) van Form1: Sub Bereken(c, w) Form2.Cls Form2.Print Str(w * c / Kilometer_per_seconde) & " Kilometer/sec" Form2.Print Str(w * c / Kilometer_per_uur) & " Kilometer/uur" Form2.Print Str(w * c / Meter_per_seconde) & " Meter/sec" Form2.Print Str(w * c / Meter_per_minuut) & " Meter/min" Visual Basic door ir. C.Daniels VI-14

Form2.Print Str(w * c / Mijl_per_uur) & " Mijl/uur" Form2.Print Str(w * c / Mijl_per_seconde) & " Mijl/sec" Form2.Print Str(w * c / Voet_per_seconde) & " Voet/sec" Form2.Print Str(w * c / Knoop) & " Knopen" Form2.Print Str(w * c / Lichtsnelheid) & " Lichtsnelheid" Uitleg: Met de instructie Cls maken we het formulier Form2 eerst schoon. Met de instructie Print kunnen we tekst afdrukken. 2) Functie-procedures Functie-procedures worden ook kortweg functies genoemd. Het grote verschil tussen een subprocedure en een functie is dat een functie een waarde (integer, string, ) teruggeeft aan het aanroepende hoofdprogramma. Voorbeeldje: Stel dat we regelmatig de halve som S van twee getallen A en B moeten berekenen. We kunnen dit als volgt programmeren: A=20.5 B=37.75 S = (A + b)/2 Print S Als dit regelmatig voorkomt in ons programma, kunnen we van die formule beter een functie maken, als volgt: ' de declaratie van de functie Private Function HalveSom(M as double,n as double) as Double HalveSom = (M + N)/2 ' In het hoofdprogramma: A = 20.5 B= 37.75 Print HalveSom A B 'de syntax Print Halvesom(A,B) mag ook Visual Basic door ir. C.Daniels VI-15

Let goed op de structuur van een functie: Private of Public Zelf gekozen naam van de functie Datatype van de berekende waarde in de functie Woordje Function Parameters, echter niet verplicht Private Public Function Functienaam(parameter1 as type, ) as type Programmacode Functienaam = waarde of variabele End Function Teruggeven aan het hoofdprogramma Vergelijk met het bovenstaande voorbeeld van de functie Halvesom. Belangrijk: Bij de aanroep van de functie moet u evenveel parameters meegeven als er bij de declaratie van de functie werden aangegeven. Ook het datatype van elke parameter moet overeenkomen! Een heel eenvoudig voorbeeld van een functieaanroep kunt u als volgt programmeren: Maak een nieuw project Functie1 aan, en plaats de volgende code in het programmavenster: Option Explicit 'De functie Product Private Function Product(a As Double, b As Double) As String Product = Str(a * b) End Function 'De eventprocedure Private Sub Form_Load() AutoRedraw = True Print "Het product van 5 en 7 is" & Product(5, 7) Probeer uit! Wat is het resultaat bij de uitvoering? Uitleg: de functie aanroep Product(5,7) plaatst de waarde 5 in de parameter a van de functie, en de waarde 7 in de parameter b. De functie berekent het product en geeft het resultaat, omgevormd tot een string Str(a*b), terug aan het hoofdprogramma. Voorbeelden van ingewikkelder toepassingen met functies zien we in het volgende hoofdstuk. Visual Basic door ir. C.Daniels VI-16

3) Private en Public Wanneer gebruikt u nu de instructie Private en Public? Een programma (project) bestaat meestal uit verschillende modules. Zo is er voor elk formulier (window) dat u nodig heeft een module met de layout van dat venster (met extensie *.frm) en de bijbehorende programmacode voor de afhandeling van events, en andere sub-programmas. U kan ook aparte programma-modules maken met alleen maar programmacode bevatten (extensie *.bas). Als een procedure Private wordt gedeclareerd, kan zij alleen maar aangeroepen worden vanuit deze module. Als zij Public wordt gedeclareerd is zij te gebruiken overal in het ganse project. Men noemt dat de scope van een procedure. Programma project MijnProject Module 1 Module 2 Module 3 Private Sub ProcX. Andere procedures en functies van module 1. Aanroep: ProcX() OK ProcY() verboden ProcZ() OK Private Sub ProcY. Andere procedures en functies van module 2.. Aanroep: ProcX() verboden ProcY() OK ProcZ() OK Public Sub ProcZ. Andere procedures en functies van module 3.. Aanroep: ProcX() verboden ProcY() verboden ProcZ() OK Bovenstaand programma bestaat uit drie modules. De procedure X is alleen te gebruiken in Module 1. De procudure Y is alleen te gebruiken in Module 2. Terwijl de procedure Z te gebruiken is in de drie modules. Visual Basic door ir. C.Daniels VI-17