Klassen
Hoe een klasse maken in 7 stappen
De komst van .NET heeft de wijze waarop VB omgaat met klassen, grondig
gewijzigd. We verwijzen graag naar deze pagina waarin we vertellen wat klassen
zijn in .NET. De volgedne informatie is intussen verouderd, maar interessant
voor diegene die toch nog met VB6 in contact komt, of die zich afvraagt hoe men
met klassen zou kunnen werken in VBA. Tenslotte verduidelijkt het van waar men
komt.
- Een klasse is een gegevensstructuur bestaande uit:
- eigenschappen
- gebeurtenissen
- methoden
- interne gegevens en regels
- Plan je klasse
- Welke eigenschappen / gebeurtenis / methoden wil je hebben?
- Hoe moet je de gegevens structureren?
- Aan welke regels moeten de gegevens voldoen?
- Je kan een klasse gebruiken
- als code die je in een nieuw project opneemt. In dat geval moet je de broncode
bijhouden.
- als Active X DLL (een synchrone component) of Active X EXE
(een asynchrone component). In dat geval gebruik je niet de broncode, maar het component.
In een nieuw project doe je dan Project, References. Met Dim x As New klassenaam
kan je met jouw klasse werken.
Beslis welke functionaliteit je verkiest.
- Voeg aan je project een Klasmodule toe. Kies Class Builder.

Voeg de properties, methods en events toe.
- Alles OK? File, Exit. Update het project. Nu heb je de basis.
- De aanpassingen die je moet doen zijn:
- verwijderen van alle niet toegestane operaties
- verwijder (of maak commentaar van de code van) de Set routines waarin instellen
woren ingesteld die je read-only wil)
- inbouwen van beperkingen
- in de Set routines van bepaalde waarden moet je misschien verificaties inbouwen
- berekenen van eigenschappen
- in de Get routines van bepaalde waarden moet je misschien eerst berekingen maken
- Compileer. Als je in een standaard project werkt, is de klasse opgenomen in je
programma.
Als je voor een Active X DLL of ActiveX EXE hebt gekozen, wordt die DLL of EXE gemaakt.
Vergeet in dat geval niet de beschrijving van je project aan te passen.

Dan heb je een betekinsvolle naam voor jouw bibliotheek/klasse in de lijst van de
beschikbare bibliotheken:

- Je kan ook een klasse maken zonder wizard. Dat kan je als volgt doen:
- Maak een klasmodule waarin je de volgende elementen plaatst.
- Private variabelen (de gegevens van je klasse, met daarin op zijn minst de
eigenschappen)
- Public Sub (methodes)
- Public Function (eigenschappen)
- Private Sub en Private Function
- Je zou kunnen werken met Public variabelen. Nadeel is echter:
- dat je geen controle meer kan doen op de geldigheid van de gegevens
- dat er geen gebeurtenis plaatsvindt als dat gegeven wordt gewijzigd, gebeurtenis waarin
je bv. een berekening zou willen doen om een andere eigenschap aan te passen
- dat je geen berekeningen kan doen vlak voor een eigenschap wordt opgevraagd.
- Om een eigenschap in te stellen, maak je een Public Sub zetEigenschap(nieuwewaarde).
- Om een eigenschap in te lezen, maak je een Public Function leesEigenschap.
Hoe een klasse te gebruiken in 4 stappen
- Via Project, References voeg je de klasse toe aan het project.
- Als de DLL/EXE is geregistreerd, staat hij in de lijst.
- Als hij niet is geregistreerd, kan je met Browse het bestand selecteren.
- VB zal in dat geval voor jou het bestand selecteren.
- Als je de klasse wil gebruiken kan je een variabele maken:
Dim variabelenaam As New klassenaam of
Dim variabelenaam As New projectnaam.klassenaam
Als je die klasse in een module wil gebruiken gebruik je:
Global variabelenaam As New klassenaam of
Global variabelenaam As New projectnaam.klassenaam
- Daarna kan je de eigenschappen en methoden van die klasse gebruiken:
MsgBox klassenaam.eigenschap
klassenaam.eigenschap = 0
klassenaam.methode(parameter)
- Als je in je programma de gebeurtenissen van je klasse wil kunnen gebruiken, zet je WithEvents
bij in de declaratie:
Dim WithEvents variabelenaam As New klassenaam of
Dim WithEvents variabelenaam As New projectnaam.klassenaam
Voorbeeld
Roepen en luisteren: een voorbeeld van een
klasse die een andere klasse roept
Breuk: teller, noemer en waarde. En uiteraard ook bewerkingen met
breuken.
Vierkant: een klasse met zijden, omtrek en oppervlakte
Tijdzones
MinMax: een klasse die minima en maxima bijhoudt
Index: een klasse om de procentuele afwijking van een getal te
bepalen.
BefEur: een klasse om in een programma met geldbedragen te
werken, zowel in BEF als in Euro.
Puntenboek: een ActiveX klasse om punten bij te houden.
Telefoontarieven 2: een klasse om de duur en de prijs
vane en telefoongesprek te berekenen, op basis van de nieuwe Belgacom-tarieven van
1/10/2000.
Virtuele auto: een klasse met enkele gegevens over een auto
Cola-automaat: Op basis van een ActiveX DLL bouwen we een interface
voor een Cola-automaat.
Beleggingen: een klasse waarmee we berekenen hoeveel een
startkapitaal waard is na een aantal termijnen.
[VB Web] - [hlrnet] - [copyright]