In 15 Schritten eine Collection Class in VB6 erstellen! Anhand eines kleinen Beispiels zur Speichung von Personendaten wird Ihnen in diesem Workshop das Klassenkonzept von VB ein wenig näher gebracht. Klassenmodul 1. Klassenmodul erstellen 2. Klassennamen vergeben 3. Empfehlenwert: Option Explicit Option Explicit OOP - Objektorientierte Programmierung 4. Jetzt beginnt das OOP 5. Variablen deklarieren Private mvarVorname As String Private mvarNachname As String Private mvarGebDat As Date 6. Schnittstelle nach "außen" ' Geburtsdatum: Schreibzugriff Public Property Let GeburtsDatum(ByVal vData As Date) mvarGebDat = vData End Property ' Geburtsdatum: Lesezugriff Public Property Get GeburtsDatum() As Date GeburtsDatum = mvarGebDat End Property ' Vorname: Schreibzugriff Public Property Let Vorname (ByVal vData As String) mvarVorname = vData End Property ' Vorname: Lesezugriff Public Property Get Vorname() As String Vorname = mvarVorname End Property ' Nachname: Schreibzugriff Public Property Let Nachname(ByVal vData As String) mvarNachname = vData End Property ' Nachname: Lesezugriff Public Property Get Nachname () As String Nachname = mvarNachname End Property 7. Die Klasse "Personen" im ersten Test Option Explicit Dim Person As Personen Im Form_Load Ereignis erstellen wir dann einmal testweise einen Personen-Datensatz: Private Sub Form_Load() ' Neue "Personen"-Klasse erstellen Set Person = New Personen ' Personendaten speichern With Person .Vorname = "Vampire" .Nachname = "666" .GeburtsDatum = Date End With End Sub Ziehen Sie auf die Form eine Schaltfläche (Command1), über die die gespeicherten Daten abgerufen werden sollen: Private Sub Command1_Click() ' Personen-Daten in MsgBox ausgeben Dim sData As String With Person sData = "Vorname: " & .Vorname & vbCrLf & _ "Nachname: " & .Nachname & vbCrLf & _ "Geburtsdatum: " & .GeburtsDatum End With ' MsgBox anzeigen MsgBox sData End Sub Collection - Sammlung von Daten Jetzt können wir zwar schon die Daten einer Person speichern, aber: Wir wollen ja nicht nur einen Datensatz verwalten, sondern mehrere! Klar könnte man jetzt hergehen und ein Array der Klasse Personen anlegen. Das wäre aber nicht im Sinne von OOP. Und aus diesem Grund kommt jetzt das Collection-Objekt ins Spiel. Hierzu benötigen wir eine weitere neue Klasse mit dem Collection-Objekt, so dass wir dann später beliebig viele Personen-Datensätze verwalten können. 8. Die Klasse "col_Personen 9. Speichern der Objekte in der Klasse Option Explicit Private mCol As Collection 10. Hinzufügen von Daten zur Collection Public Function Add(ByVal Vorname As String, _ ByVal Nachname As String, _ ByVal Geburtsdatum As Date) As Personen ' Neues Personen-Objekt erstellen Dim objNewMember As Personen Set objNewMember = New Personen ' Daten an das erstellte Objekt zuweisen With objNewMember .Vorname = Vorname .Nachname = Nachname .Geburtsdatum = Geburtsdatum End With ' das Objekt schließlich zur Collection hinzufügen mCol.Add objNewMember ' das neu erstellte Objekt zurückgeben Set Add = objNewMember ' Objekt löschen Set objNewMember = Nothing End Function 11. Zugriff auf die Daten Public Property Get Item(ByVal Index As Long) As Personen ' Bestimmten Datensatz der Collection zurückgeben. ' Der Datensatz wird über die Position (Index) "angesprochen". Set Item = mCol(Index) End Property 12. Anzahl der gespeicherten Daten ermitteln Public Property Get Count() As Long ' Anzahl Collections-Einträge Count = mCol.Count End Property Da das Collection-Objekt von Haus aus eine Count-Eigenschaft besitzt, geben wir diese einfach über unsere eigene Count-Eigenschaft nach außen weiter. Die Count-Eigenschaft soll nur gelesen erden können, weshalb wir auch nur die Get Count Eigenschaft zur Verfügung stellen (kein "Property Let Count" !!!). 13. Löschen von Datensätzen Public Sub Remove(ByVal Index As Integer) ' Löschen eines Eintrags aus dem Collection-Objekt mCol.Remove Index End Sub 14. Class_Initialize und Class_Terminate Private Sub Class_Initialize() ' Erstellt das Collection-Objekt beim ersten Zugriff ' auf die Klasse Set mCol = New Collection End Sub Private Sub Class_Terminate() ' Zerstört das Collection-Objekt, ' wenn die Klasse beendet wird Set mCol = Nothing End Sub Zusammenfassendes Beispiel Unsere Klassen sind nun erstellt und einsatzbereit. Wir müssen nun nur noch in unserem Hauptprogramm die Klasse benutzen Hierzu wird die "Collection-Klasse" wie folgt deklariert: ' Deklarieren der Collection-Klasse "Personen" Dim Personen As col_Personen Private Sub Form_Load() ' Neues Collection-Objekt erstellen Set Personen = New col_Personen End Sub Hinzufügen von neuen Daten: ' Neuen Datensatz hinzufügen Personen.Add "Dieter", "Otter", "05.05.1973" ' Weiteren Datensatz hinzufügen Personen.Add "Vampire", "666", Date ' und noch ein Datensatz Personen.Add "Moni", "Knödel", "01.01.1980" Anzahl gespeicherter Datensätze ermitteln: Dim nCount As Long ' Anzahl Datensätze nCount = Personen.Count MsgBox CStr(nCount) & " Datensätze gespeichert." Ändern eines Datensatzes ' 3. Datensatz ändern With Personen.Item(3) ' Geburtsdatum ändern .GeburtsDatum = "10.07.1965" End With Einzelnen Datensatz löschen: ' 2. Datensatz löschen Personen.Remove 2 ' Neue Anzahl Datensätze anzeigen MsgBox CStr(Personen.Count) Durchlaufen der Datensätze Dim oItem As Person ' alle Datensätze durchlaufen Dim i As Integer With Personen For i = 1 To .Count List1.AddItem .Item(i).Nachname & " " & .Item(i).Vorname Next i End With Jetzt sollte das alles laufen. Wir hoffen, es hat Ihnen genauso viel Spaß gemacht, wie es uns Spaß gemacht hat diesen kleinen OOP-Workshop zu schreiben und hoffen weiterhin, dass Sie der Workshop ein wenig dazu bringt, auch in Visual Basic 6 objektorientiert zu programmieren und das Klassenkonzept einzusetzen. Dieser Workshop wurde bereits 47.340 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats ![]() Dieter Otter PopUp-Menü wird nicht angezeigt :-( In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. Neu! sevCoolbar 3.0 ![]() Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access |
|||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |