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.


  1. Een klasse is een gegevensstructuur bestaande uit:
  2. Plan je klasse
    1. Welke eigenschappen / gebeurtenis / methoden wil je hebben?
    2. Hoe moet je de gegevens structureren?
    3. Aan welke regels moeten de gegevens voldoen?
  3. Je kan een klasse gebruiken
    1. als code die je in een nieuw project opneemt. In dat geval moet je de broncode bijhouden.
    2. 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.
  4. Voeg aan je project een Klasmodule toe. Kies Class Builder.
    wpe5E.jpg (23254 bytes)
    Voeg de properties, methods en events toe.
  5. Alles OK? File, Exit. Update het project. Nu heb je de basis.
  6. De aanpassingen die je moet doen zijn:
  7. 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.
    wpe3.jpg (26746 bytes)
    Dan heb je een betekinsvolle naam voor jouw bibliotheek/klasse in de lijst van de beschikbare bibliotheken:
    wpe12.jpg (28658 bytes)
  8. Je kan ook een klasse maken zonder wizard. Dat kan je als volgt doen:
    1. 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
    2. 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.
    3. Om een eigenschap in te stellen, maak je een Public Sub zetEigenschap(nieuwewaarde).
    4. Om een eigenschap in te lezen, maak je een Public Function leesEigenschap.

 


Hoe een klasse te gebruiken in 4 stappen

  1. Via Project, References voeg je de klasse toe aan het project.
    1. Als de DLL/EXE is geregistreerd, staat hij in de lijst.
    2. Als hij niet is geregistreerd, kan je met Browse het bestand selecteren.
    3. VB zal in dat geval voor jou het bestand selecteren.
  2. 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
  3. Daarna kan je de eigenschappen en methoden van die klasse gebruiken:
    MsgBox klassenaam.eigenschap
    klassenaam.eigenschap = 0
    klassenaam.methode(parameter)
  4. 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]