Objekte beschreiben ◦ Zusammenfassung ◦ ?

Das Objektmodell von Excel beschreibt Dutzende vorgefertigter Objektklassen, aus denen der Anwendungsentwickler im Baukastensystem Anwendungen zusammensetzen kann. Da er von den angebotenen Objektklassen nahezu beliebig Instanzen erstellen kann, gehen ihm die Bauteile kaum aus. Dennoch wird wohl jeder Entwickler, der anspruchsvolle Anwendungen erstellt, früher oder später eigene Objektklassen beschreiben wollen.

Eigene Benutzerschnittstellenobjekte lassen sich in Visual Basic schon lange komfortabel beschreiben. Grundlage sind die Formulare (engl. user forms oder forms). Ein Formular ist ein 'leeres Fenster', das eine Entwicklerin zunächst grafisch gestaltet, indem sie Steuerelemente platziert und anordnet. Den Steuerelementen ordnet sie in einem zweiten Schritt Ereignisse zu, deren Reaktionen sie schliesslich in einem dritten Schritt durch Programme beschreibt (siehe Entwicklungsumgebung von VBA).

In neueren Visual Basic Versionen kann man auch eigene Objekte ohne Benutzerschnittstelle definieren. Um den Bedarf nach solchen Objekten zu verstehen, betrachten wir das Problem, die persönlichen Daten von Personen zu speichern. Diese Aufgabe stellt folgende Anforderungen:

- Die Daten einer Person möchte man als Einheit zusammenfassen und in einer einzigen Variablen speichern. Die Variable 'Anna' soll beispielsweise 'Name', 'Vornamen', 'Geburtsdatum' und 'Alter' der Person Anna speichern.
- Auf die Daten möchte man nicht nur als Gesamtes, sondern auch einzeln zugreifen können. Den Zugriff auf die Elemente der Variablen Anna soll der Punktoperator ermöglichen. 'Anna.Geburtsdatum' gibt beispielsweise das Geburtsdatum der Person Anna zurück oder legt es fest.
- 'Anna.Alter' soll immer das aktuelle Alter zurück geben. Das Alter ist abhängig vom aktuellen Datum und ändert sich laufend.

Die ersten beiden Punkte lassen sich mit Hilfe des zusammengesetzten Datentyps Satz erfüllen. Schwierigkeiten bereitet dagegen der dritte Punkt. Das Alter kann nicht in einer Variablen gespeichert werden, da es eine Funktion des aktuellen Datums ist. Als Eigenschaft eines Objektes kann 'Alter' diese Anforderung erfüllen.

Die folgenden Themen beschreiben, wie man benutzerdefinierte Objektklassen definieren und verwenden kann. Die Konzepte werden anhand der Klassenmodule eingeführt und angewendet und lassen sich grösstenteils auf die Formularmodule übertragen.

©abo