DevTrain

Autor: Bernhard Elbl

Komponenten(DLL) mit VB(Teil 2) : Klassen-Implementierung

Eine Klasse kann in einer anderen Klasse implementiert werden. Klassen können mit VB nicht abgeleitet werden, wie in C++. In VB ist keine Vererbung möglich. Über eine Implementierung können unter anderem Methoden, oder Eigenschaften der implementierten Klassen übernommen werden. Weiter Info´s finden sie auf...
http://msdn.microsoft.com/library/default.asp?URL=/library/devprods/vs6/vbasic/vbenlr98/vastmimplements.htm

In diesem Artikel baue ich auf den ersten Teil auf: "Komponenten(DLL) mit VB" auf und verwende die fertiggestellte Klasse "ClassRechnen" zum Implementieren. Diese Klasse werde ich hier nicht mehr erklären!

Wir fügen ein neues Klassenmodul "ClassImpl" hinzu und öffnen die Code-Ansicht. Gleich als erstes Verwenden wir die "Implements"-Anweisung zum implementieren der ClassRechnen.
Implementieren der Klasse "ClassRechnen" in "ClassImpl"
Der Code für die Klasse "ClassImpl"
Option Explicit
'*1
Implements ClassRechner
'*2
Private clssRechX As ClassRechner
'*3
Private Sub Class_Initialize()
Set clssRechX = New ClassRechner
End Sub
'*4
Private Sub Class_Terminate()
Set clssRechX = Nothing
End Sub
'*5
Private Function ClassRechner_Rechnen() As Long
End Function
'*6
Private Property Get ClassRechner_Zahl1() As Long
    ClassRechner_Zahl1 = clssRechX.Zahl1
End Property
Private Property Let ClassRechner_Zahl1(RHS As Long)
    clssRechX.Zahl1 = RHS
End Property
Private Property Get ClassRechner_Zahl2() As Long
    ClassRechner_Zahl2 = clssRechX.Zahl1
End Property
Private Property Let ClassRechner_Zahl2(RHS As Long)
    clssRechX.Zahl2 = RHS
End Property
'*7
Public Property Let Zahl1(Par1 As Long)
    ClassRechner_Zahl1 = Par1
End Property
Public Property Get Zahl1() As Long
    Zahl1 = ClassRechner_Zahl1
End Property
Public Property Let Zahl2(Par2 As Long)
    ClassRechner_Zahl2 = Par2
End Property
Public Property Get Zahl2() As Long
    Zahl2 = ClassRechner_Zahl2
End Property
Public Function Rechnen() As Long
    Rechnen = clssRechX.Rechnen
End Function

Und hier die Code-Beschreibung:
'*1
Die Klasse ClassRechnen wird implementiert.
'*2
Hier wird "clssRechX" als globale Objectvariable innerhalb der Klasse deklariert, um in ihr Daten speichern zu können
'*3
Bei der Initialisierung der COM wird eine Instanz zur Klasse "ClassRechnen" gesetzt.
'*4
Bei der Klassen-Terminierung wird die Klassen-Instanz für "ClassRechnen" zerstört.
'*5
Jede Funktion der implementierten Klasse MUSS als Private-Funktion für den Zugriff auf das Objekt dieser Klasse implementiert werden.
'*6
Auch jede Eigenschaft(Property) MUSS als Private deklariert werden.
'*7
Um die implementierten Eigenschaften und Methoden jetzt wieder zur Verfügung zu haben, müssen alle noch mal implementiert werden. Sie können die selben Namen haben, wie die, in der implementierten Klasse. Visual Basic erkennt welche Eigenschaften und Methoden aufgeführt werden müssen.


Jetzt hat die Klasse "ClassImpl" die selben Eigenschaften und Methoden, wie die Klasse "ClassRechnen" zur Verfügung. Die "ClassImpl" kann natürlich beliebig auf eigene Property´s und Funktionen erweitert werden.

WICHITG: Bei der Implementierung einer Klasse, müssen alle Property´s(Eigenschaften) und Funktionen(Prozeduren, Methoden) wie in Punkt '*5 und '*6 beschrieben implementiert werden! Allerdings können beliebig viele Public-Property´s, wie in Punkt '*7 implementiert werden, jenachdem welche Eigenschaften und Methoden zur Verfügung stehen sollen.

Download:  Das gesamte Projekt gibt´s unten Download.
    

TIP: Der KlassenGenerator in Visual Basic
Mit Hilfe des Klassengenerators können Klassen, Methoden, Eigenschaften, Auflistungen, Erreignisse, und Auflisten auf bequeme Art und Weise mit wenigen Mausklicks hinzufügt werden.
Im Menü Add-Ins/Add-In-Manager befindet sich der "Vb 6 Klassengenerator". Machen Sie einen Doppel-Klick drauf. Jetzt ist dieser geladen und steht im Menü Add-Ins zur Verfügung! Erstellen Sie Ihre gewünschten Methoden, usw.... Nach Aktualisierung steht Ihre Auswahl zur Verfügung.


Erfasst am: 18.05.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=454
© Copyright 2003 ppedv AG - http://www.ppedv.de