Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Allgemein / Entwicklung / Debug

Entwicklungsumgebung oder Kompiliert?

Historie
24.02.2004Vorteile und Funktionsweise erläutert
30.04.2000Erste Version

Motivation

Manchmal wäre es ganz nützlich zu wissen, ob das VB-Programm gerade in der Entwicklungsumgebung (IDE) läuft oder bereits kompiliert ist. Die Routine DebugMode erlaubt gerade dies festzustellen.

Die hier vorgestellte Lösung kommt ganz ohne jeden störenden Fehlerhandler aus. Dies kann sehr wichtig sein, etwa wenn man auf einen Error in der IDE anders reagieren will (MsgBox?), als bei einer EXE (Log-File?).

Code / Quelltext

Die Assert-Anweisung wird in kompilierten Programmen ignoriert, ansonsten (in der Entwicklungsumgebung) ruft sich die Routine nochmal selbst auf, wobei die Counter-Variable auf "0" gesetzt wird. Da nach dem eventuellen rekursiven Aufruf von Counter immer 1 abgezogen wird, gibt die Routine in der IDE als Ergebnis "-1" (True) zurück, sonst "0" (False).

Function DebugMode() As Boolean

  Static Counter As Variant

  If IsEmpty(Counter) Then

    'Erster Aufruf:
    Counter = 1
    Debug.Assert DebugMode() Or True
    Counter = Counter - 1

  ElseIf Counter = 1 Then

    'Aha, rekursiver Aufruf:
    Counter = 0

  End If
  DebugMode = Counter

End Function

Mit Unterstützung von Francesco Balena (VB-2-The-Max).

© Jost Schwider, 30.04.2000-24.02.2004 - http://vb-tec.de/debugmod.htm