Arbeiten mit Objekten

Wenn Sie eine Anwendung in Visual Basic erstellen, arbeiten Sie mit Objekten. Sie können Objekte verwenden, die von Visual Basic bereitgestellt werden, wie z.B. Steuerelemente, Formulare und Datenzugriffsobjekte. Außerdem können Sie die Objekte anderer Anwendungen aus Ihrer Visual Basic-Anwendung heraus steuern. Sie können sogar eigene Objekte erstellen und zusätzliche Eigenschaften und Methoden dafür definieren.

Was ist ein Objekt?

Ein Objekt ist eine Kombination von Code und Daten, die als eine Einheit aufgefasst werden kann. Ein Objekt kann ein Teil einer Anwendung sein, z.B. ein Steuerelement oder ein Formular. Eine ganze Anwendung kann ebenfalls ein Objekt darstellen. Die folgende Tabelle enthält Beispiele der Arten von Objekten, die Sie in Visual Basic einsetzen können.

Beispiel

Beschreibung

CommandButton (Befehlsschaltfläche)

Steuerelemente in einem Formular, z.B. Befehlsschaltflächen und Rahmen, sind Objekte.

Formular

Jedes Formular in einem Visual Basic-Projekt ist ein separates Objekt.

Database (Datenbank)

Datenbanken sind Objekte, die andere Objekte, wie Felder und Indizes, enthalten.

Chart (Diagramm)

Ein Diagramm in Microsoft Excel ist ein Objekt.

Woher stammen Objekte?

Jedes Objekt in Visual Basic wird durch eine Klasse definiert. Stellen Sie sich eine Plätzchenform zum Ausstechen von Plätzchen vor, um sich die Beziehung zwischen einem Objekt und der dazugehörigen Klasse zu verdeutlichen. Die Plätzchenform stellt die Klasse dar. Sie definiert die Merkmale der einzelnen Plätzchen, z.B. ihre Größe und ihre Gestalt. Die Klasse wird zum Erzeugen von Objekten verwendet. Die Objekte sind die Plätzchen.

Auch die folgenden beiden Beispiele veranschaulichen die Beziehung zwischen Klassen und Objekten in Visual Basic:

·     Die Steuerelemente in der Werkzeugsammlung in Visual Basic stellen Klassen dar. Das als Steuerelement bezeichnete Objekt existiert erst, wenn Sie es in einem Formular zeichnen. Beim Erstellen eines Steuerelements erstellen Sie eine Kopie oder Instanz der Klasse des Steuerelements. Diese Instanz der Klasse ist das Objekt, auf das Sie sich in Ihrer Anwendung beziehen.

·     Das Formular, mit dem Sie zur Entwurfszeit arbeiten, ist eine Klasse. Zur Laufzeit erstellt Visual Basic eine Instanz der Klasse des Formulars.

Im Eigenschaftenfenster wird die Klasse und die Name-Eigenschaft von Objekten in Ihrer Visual Basic-Anwendung angezeigt.

Alle Objekte werden als identische Kopien ihrer Klasse erstellt. Sobald sie als individuelle Objekte existieren, können ihre Eigenschaften geändert werden. Wenn Sie z.B. in einem Formular drei Befehlsschaltflächen zeichnen, ist jedes Befehlsschaltflächenobjekt eine Instanz der Klasse CommandButton. Allen Objekten sind bestimmte Merkmale und eine bestimmte Funktionalität gemeinsam (Eigenschaften, Methoden und Ereignisse), die durch die Klasse definiert werden. Jedes Objekt hat jedoch einen eigenen Namen, kann separat aktiviert und deaktiviert oder an einer anderen Position im Formular abgelegt werden usw.

Der Einfachheit halber wird in den anderen Kapiteln dieses Handbuchs nicht auf die Klasse eines Objekts verwiesen. Sie müssen sich nur merken, dass z.B. mit dem Begriff "Listenfeld-Steuerelement" eine Instanz der Klasse ListBox gemeint ist.

Wozu dienen Objekte?

Ein Objekt stellt Code bereit, den Sie nicht schreiben müssen. Sie können z.B. selbst Code für Dialogfelder wie Datei öffnen oder Datei speichern schreiben, aber statt dessen auch das Standarddialogfeld-Steuerelement (ein Objekt) verwenden, das in Visual Basic verfügbar ist.

Einführung in die Arbeit mit Objekten

Visual Basic-Objekte unterstützen Eigenschaften, Methoden und Ereignisse. In Visual Basic werden die Daten eines Objekts (Einstellungen oder Attribute) als Eigenschaften bezeichnet, während die verschiedenen Prozeduren, die auf dem Objekt ausgeführt werden können, als die dazugehörigen Methoden bezeichnet werden. Ein Ereignis ist eine Aktion, die von einem Objekt erkannt wird, z.B. das Klicken mit der Maus oder das Drücken einer Taste, und Sie können Code schreiben, der auf dieses Ereignis reagiert.

Sie können die Merkmale eines Objekts ändern, indem Sie die dazugehörigen Eigenschaften ändern. Stellen Sie sich als Beispiel ein Radio vor. Eine "Eigenschaft" eines Radios ist die Lautstärke. In Visual Basic würden Sie diesen Sachverhalt als die Eigenschaft Lautstärke eines Radios bezeichnen, die Sie einstellen können, indem Sie den Wert der Eigenschaft ändern. Nehmen wir an, Sie könnten die Lautstärke des Radios im Bereich von 0 bis 10 einstellen. Wenn Sie ein Radio mit Visual Basic steuern könnten, hätten Sie die Möglichkeit, eine Prozedur zu implementieren, die den Wert der Eigenschaft Lautstärke von 3 auf 5 ändert, um das Radio lauter zu stellen:

Radio.Lautstärke = 5

Neben den Eigenschaften verfügen Objekte über Methoden. Methoden gehören genauso zu Objekten wie Eigenschaften. In der Regel stellen Methoden Operationen dar, die durchgeführt werden sollen, während Eigenschaften Attribute darstellen, die Sie einstellen oder abrufen können. Nehmen wir z.B. an, Sie wollen eine Telefon­nummer wählen. In diesem Fall könnten Sie definieren, dass Telefone über die Methode Wählen verfügen, und Sie könnten die folgende Syntax verwenden, um die siebenstellige Nummer 5551111 zu wählen:

Telefon.Wählen 5551111

Objekte verfügen außerdem über Ereignisse. Ereignisse werden ausgelöst, wenn ein bestimmter Aspekt des Objekts geändert wird. Ein Radio könnte z.B. über das Ereignis KanalWählen verfügen, oder ein Telefon könnte das Ereignis Klingeln haben.

Steuern von Objekten mit ihren Eigenschaften

Die einzelnen Eigenschaften unterscheiden sich in bezug auf den Zeitpunkt, zu dem ihre Werte definiert oder abgerufen werden können. Einige Eigenschaften können zur Entwurfszeit festgelegt werden. Sie können das Eigenschaftenfenster verwenden, um den Wert dieser Eigenschaften festzulegen, ohne auch nur eine Zeile Code schreiben zu müssen. Einige Eigenschaften stehen zur Entwurfszeit nicht zur Verfügung. Sie müssen daher Code schreiben, um diese Eigenschaften zur Laufzeit festzulegen.

Eigenschaften, die Sie zur Laufzeit definieren und abrufen können, werden auch als Lesen/Schreiben-Eigenschaften bezeichnet. Eigenschaften, die zur Laufzeit nur abgerufen werden können, werden als schreibgeschützte Eigenschaften bezeichnet.

Definieren von Eigenschaftswerten

Sie legen den Wert einer Eigenschaft fest, wenn Sie das Aussehen oder das Verhalten eines Objekts ändern möchten. Sie ändern z.B. die Text-Eigenschaft eines Textfeld-Steuerelements (TextBox), um den Inhalt des Textfeldes zu ändern.

Verwenden Sie die folgende Syntax, um den Wert einer Eigenschaft festzulegen:

Objekt.Eigenschaft = Ausdruck

Die folgenden Anweisungen demonstrieren, wie Eigenschaften definiert werden können:

Text1.Top = 200            ' Top-Eigenschaft auf 200 Twips setzen.

Text1.Visible = True       ' Textfeld anzeigen.

Text1.Text = "Hallo"       ' "Hallo" in Textfeld ausgeben.

Abrufen von Eigenschaftswerten

Sie können den Wert einer Eigenschaft abrufen, um sich über den Zustand eines Objekts zu informieren, bevor Ihr Code weitere Operationen durchführt (den Wert z.B. einem anderen Objekt zuweist). Sie können beispielsweise die Text-Eigenschaft eines Textfeld-Steuerelements abrufen, um den Inhalt des Textfeldes zu ermitteln, bevor Code ausgeführt wird, der den Wert verändern könnte.

In den meisten Fällen können Sie folgende Syntax verwenden, um den Wert einer Eigenschaft abzurufen:

Variable = Objekt.Eigenschaft

Sie können den Wert einer Eigenschaft auch als Teil eines komplexeren Ausdrucks abrufen, ohne die Eigenschaft einer Variablen zuzuweisen. Im folgenden Code-Beispiel wird für die Top-Eigenschaft des neuen Elements eines Steuerelementefeldes die Top-Eigenschaft des vorhergehenden Elements zuzüglich 400 berechnet:

Private Sub cmdAdd_Click()

   ' [Anweisungen]

   optButton(n).Top = optButton(n-1).Top + 400

   ' [Anweisungen]

End Sub

Tip   Falls Sie den Wert mehrmals verwenden wollen, wird der Code schneller ausgeführt, wenn Sie den Wert in einer Variablen speichern.

Durchführen von Operationen mit Methoden

Methoden können Auswirkungen auf die Werte von Eigenschaften haben. Im Radio-Beispiel ändert die Methode ÄndernLautstärke z.B. die Eigenschaft Lautstärke. In Visual Basic haben Listenfelder eine List-Eigenschaft, die mit den Methoden Clear und AddItem geändert werden kann.

Verwenden von Methoden im Code

Wenn Sie eine Methode im Code verwenden, hängt die Schreibweise der Anweisung davon ab, wie viele Argumente der Methode übergeben werden müssen und ob die Methode einen Wert zurückgibt. Wenn einer Methode keine Argumente übergeben werden, gilt für den Code die folgende Syntax:

Objekt.Methode

Im folgenden Beispiel gibt die Refresh-Methode das Bildfeld erneut aus:

Picture1.Refresh      ' Erneutes Ausgeben des Steuerelements erzwingen.

Einige Methoden (wie die Refresh-Methode) haben keine Argumente und geben keine Werte zurück.

Wenn der Methode mehrere Argumente übergeben werden, müssen Sie die Argumente mit einem Komma voneinander trennen. Die Circle-Methode verwendet z.B. Argumente, die die Position, den Radius und die Farbe eines Kreises in einem Formular definieren:

' Blauen Kreis mit einem Radius von 1200 Twips ausgeben.

Form1.Circle (1600, 1800), 1200, vbBlue

Wenn Sie den Rückgabewert einer Methode weiterverwenden, müssen Sie ihn in runde Klammern einschließen. Die GetData-Methode gibt z.B. ein Bild aus der Zwischenablage zurück:

Picture = Clipboard.GetData (vbCFBitmap)

Wenn es keinen Rückgabewert gibt, werden die Argumente ohne runde Klammern angezeigt. Die AddItem-Methode gibt z.B. keinen Wert zurück:

List1.AddItem "Ihr Name"   ' Trägt den Text 'Ihr Name' in ein Listenfeld ein.

Wie stehen Objekte in Beziehung zueinander?

Wenn Sie zwei Befehlsschaltflächen in ein Formular einfügen, handelt es sich um separate Objekte mit unterschiedlichen Einstellungen für die Name-Eigenschaft (Command1 und Command2), die jedoch derselben Klasse (CommandButton) angehören.

Außerdem befinden sie sich in demselben Formular. Ein Steuerelement in einem Formular ist auch von dem Formular umgeben (also in dem Formular enthalten). Daraus ergibt sich eine Hierarchie der Steuerelemente. Um auf ein Steuerelement zu verweisen, müssen Sie also möglicherweise zunächst auf das Formular verweisen, in dem es enthalten ist, so wie Sie beispielsweise beim Telefonieren zuerst eine Länder- oder Ortsvorwahl wählen müssen, bevor Sie einen bestimmten Telefonanschluß erreichen können.

Den beiden Befehlsschaltflächen ist außerdem gemeinsam, dass sie Steuerelemente sind. Alle Steuerelemente haben gemeinsame Merkmale, die sie von Formularen und anderen Objekten in der Visual Basic-Umgebung unterscheiden. Visual Basic verwendet sogenannte Auflistungen (engl.: collections), um Objekte, die miteinander verwandt sind, zu gruppieren. So enthält die Forms-Auflistung alle geladenen Formulare einer Anwendung, die Controls-Auflistung alle Steuerelemente eines Formulars. Diese Auflistungen sind per Programmcode abrufbar und verwendbar.

In Visual Basic kommt es häufig vor, dass ein Objekt andere Objekte enthält (siehe "PictureBox" und "Frame").