Testen von Daten und Prozeduren im Direktfenster

Manchmal ist es bei der Fehlerbeseitigung oder dem Experimentieren mit einer Anwendung sinnvoll, einzelne Prozeduren zu testen, Ausdrücke auszuwerten oder Variablen oder Eigenschaften neue Werte zuzuweisen. Diese Arbeitsschritte lassen sich im Direktfenster durchführen. Sie können Ausdrücke auswerten, indem Sie deren Werte im Direktfenster ausgeben.

Ausgeben von Informationen im Direktfenster

Es gibt zwei Möglichkeiten, Werte im Direktfenster auszugeben:

·     Fügen Sie Debug.Print- Anweisungen in den Anwendungs-Code ein.

·     Geben Sie Print-Methoden direkt im Direktfenster ein.

Diese Verfahren bieten mehrere Vorteile gegenüber Überwachungsausdrücken:

·     Sie brauchen die Ausführung nicht zu unterbrechen, um das Ergebnis der Ausführung Ihrer Anwendung zu erhalten. Sie können Daten oder andere angezeigte Meldungen ansehen, während Sie die Anwendung ausführen.

·     Das Ergebnis wird in einem separaten Bereich (dem Direktfenster) angezeigt und vermischt sich daher nicht mit der Ausgabe, die ein Benutzer sieht.

·     Da Sie diesen Code als Teil des Formulars speichern können, brauchen Sie diese Anweisungen nicht neu zu definieren, wenn Sie das nächste Mal an der Anwendung arbeiten.

Ausgaben aus dem Anwendungs-Code

Die Print-Methode sendet Ausgaben immer dann zum Direktfenster, wenn Sie das Präfix des Debug-Objekts in Ihrem Code verwenden:

Debug.Print [Elemente][;]

Die folgende Anweisung gibt z.B. den Wert von Salary immer dann im Direktfenster aus, wenn die Anweisung ausgeführt wird:

Debug.Print "Salary = "; Salary

Dieses Verfahren funktioniert am besten, wenn es eine bestimmte Stelle in Ihrem Anwendungs-Code gibt, von der Sie wissen, dass sich die Variable (in diesem Fall Salary) dort ändert. Sie können die obige Anweisung z.B. in eine Schleife einfügen, die Salary wiederholt ändert.

Anmerkung   Wenn Sie Ihre Anwendung in einer .exe-Datei kompilieren, werden die Debug.Print-Anweisungen entfernt. Wenn Ihre Anwendung also nur Debug.Print- Anweisungen mit Zeichenfolgen oder einfachen Variablentypen als Argumente verwendet, enthält sie anschließend keine Debug.Print-Anweisungen mehr. Visual Basic entfernt allerdings keine Funktionsaufrufe, die Argumente für Debug.Print sind. Alle Nebeneffekte dieser Funktionen bleiben also in einer kompilierten .exe-Datei bestehen, auch wenn die Funktionsaufrufe nicht ausgegeben werden.

Ausgaben innerhalb des Direktfensters

Sobald Sie sich im Haltemodus befinden, können Sie den Fokus in das Direktfenster bewegen, um Daten zu untersuchen.

So untersuchen Sie Daten im Direktfenster

1     Klicken Sie auf das Direktfenster (sofern es angezeigt wird).

- oder -

Klicken Sie im Menü Ansicht auf Direktfenster.

Wenn das Direktfenster den Fokus hat, können Sie die Print-Methode ohne das Debug-Objekt verwenden.

2     Geben Sie oder fügen Sie eine Anweisung im Direktfenster ein, und drücken Sie anschließend die EINGABETASTE.

Das Direktfenster reagiert darauf, indem es die Anweisung ausführt, wie in Abbildung 72 dargestellt.

 

Abbildung 72:   
Verwenden der Print-Methode zur Ausgabe im Direktfenster
Abbildung 73:   Verwenden eines Fragezeichens

Ein Fragezeichen (?) ist eine hilfreiche Kurzschreibweise für die Print-Methode. Die Bedeutung des Frage­zeichens entspricht genau der von Print und kann in jedem Zusammenhang verwendet werden, in dem auch Print verwendet werden kann. Die Anweisungen in Abb.72 könnten z.B. auch wie in Abb. 73 eingegeben werden.

Ausgeben von Eigenschaftswerten

Sie können im Direktfenster jeden gültigen Ausdruck auswerten, einschließlich der Ausdrücke, die Eigenschaften betreffen. Das momentan ausgeführte Formular oder das momentan ausgeführte Modul legt den Gültigkeitsbereich fest. Wenn die Ausführung innerhalb des Codes angehalten wird, der mit einem Formular oder einer Klasse verbunden ist, können Sie auf die Eigenschaften dieses Formulars (oder eines seiner Steuerelemente) verweisen. Sie können den Verweis auf dieses Formular implizit angeben, wie z.B. mit den folgenden Anweisungen:

? BackColor

? Text1.Height

Unter der Annahme, dass Text1 ein Steuerelement im momentan ausgeführten Formular ist, gibt die erste Anweisung den numerischen Wert der Hintergrundfarbe des aktuellen Formulars im Direktfenster aus. Die zweite Anweisung gibt die Höhe von Text1 aus.

Wenn die Ausführung in einem Modul oder einem anderen Formular angehalten wird, müssen Sie explizit ein Formular angeben:

? Form1.BackColor

? Form1.Text1.Height

Anmerkung   Durch Verweise auf ein nicht geladenes Formular im Direktfenster (oder anderswo) wird dieses Formular geladen.

Zuweisen von Werten zu Variablen und Eigenschaften

Wenn Sie einer Fehlerursache auf den Grund gehen möchten, sollten Sie die Auswirkung einzelner Datenwerte untersuchen. Im Haltemodus können Sie Werte im Direktfenster festlegen, indem Sie Anweisungen wie die folgenden verwenden:

BackColor = 255

VScroll1.Value = 100

MaxRows = 50

Die erste Anweisung ändert eine Eigenschaft des momentan ausgeführten Formulars, die zweite Anweisung modifiziert eine Eigenschaft von VScroll1, und die dritte Eigenschaft weist einer Variablen einen Wert zu.

Nachdem Sie die Werte einer oder mehrerer Eigenschaften und Variablen festgelegt haben, können Sie mit der Ausführung fortfahren, um sich die Ergebnisse anzusehen.

Testen von Prozeduren im Direktfenster

Das Direktfenster wertet jede gültige und in Visual Basic ausführbare Anweisung aus, akzeptiert aber keine Datendeklarationen. Sie können jedoch Aufrufe von Sub- und Function-Prozeduren eingeben, wodurch Sie die mögliche Auswirkung einer Prozedur mit jedem beliebigen Satz von Argumenten testen können. Geben Sie eine Anweisung dazu genauso im Direktfenster ein (während Sie sich im Haltemodus befinden), wie Sie diese im Code-Editor-Fenster eingeben würden. Beispiel:

X = Quadratic(2, 8, 8)

DisplayGraph 50, Arr1

Form_MouseDown 1, 0, 100, 100

Wenn Sie die EINGABETASTE drücken, wechselt Visual Basic in den Laufzeitmodus, verbleibt dort, um die Anweisung auszuführen, und kehrt dann in den Haltemodus zurück. Zu diesem Zeitpunkt können Sie die Ergebnisse ansehen und mögliche Auswirkungen auf Variablen- oder Eigenschaftswerte testen.

Wenn Option Explicit wirksam ist (alle Variablen müssen dann explizit deklariert werden), muss jede Variable, die Sie im Direktfenster eingeben, innerhalb des aktu­ellen Gültigkeitsbereichs deklariert sein. Der Gültigkeitsbereich betrifft Prozedur­aufrufe genauso wie Variablen. Sie können jede Prozedur innerhalb des momentan aktiven Formulars aufrufen. Sie können eine Prozedur in einem Modul jederzeit aufrufen, es sei denn, die Prozedur wurde mit dem Schlüsselwort Private deklariert. In die­sem Fall können Sie die Prozedur nur aufrufen, während Sie das Modul ausführen.

Überprüfen von Fehlernummern

Im Direktfenster können Sie die zu einer bestimmten Fehlernummer gehörenden Meldungen anzeigen. Geben Sie z.B. die folgende Anweisung im Direktfenster ein:

error 58

Drücken Sie die EINGABETASTE, um die Anweisung auszuführen. Die entsprechende Fehlermeldung wird angezeigt (siehe Abbildung 74).

 

Abbildung 74:   Anzeigen von Fehlermeldungen im Direktfenster

Tipps zur Verwendung des Direktfensters

Nachfolgend werden einige Schnellzugriffstechniken und Tastenkombinationen vorgestellt, die Sie im Direktfenster anwenden können:

·     Wenn Sie eine Anweisung einmal eingegeben haben, können Sie sie erneut ausführen, indem Sie die Einfügemarke zurück zu dieser Anweisung bewegen und die EINGABETASTE an einer beliebigen Stelle in dieser Zeile drücken.

·     Vor dem Drücken der EINGABETASTE können Sie die aktuelle Anweisung bearbeiten, um ihre Auswirkungen verändern.

·     Sie können die Maus oder die PFEILTASTEN verwenden, um sich im Direktfenster zu bewegen. Drücken Sie nicht die EINGABETASTE, es sei denn, Sie befinden sich bei einer Anweisung, die Sie ausführen möchten.

·     Mit STRG+POS1 gelangen Sie an den Anfang und mit STRG+ENDE an das Ende des Direktfensters.

Mit POS1 bzw. ENDE gelangen Sie an den Anfang bzw. an das Ende der aktuellen Zeile