用“立即”窗口测试过程

“立即”窗口可对任何有效的 Visual Basic 的可执行语句求值,却不接受数据声明。但是,可以输入 Sub 和 Function 过程调用,由此可用任何给定的一系列参数来测试过程的可能效果。简而言之,在“立即”窗口中输入一个语句(在中断模式下)与在“代码”窗口中是一样的。例如:

X = Quadratic(2, 8, 8)
DisplayGraph 50, Arr1
Form_MouseDown 1, 0, 100, 100

当按下 Enter 键时,Visual Basic 会切换到运行时来执行语句,然后再返回到中断模式。此时可观察结果并测试变量或属性值的任何可能效果。

过程调用的范围与变量的范围一样。可在当前活动窗体内调用任何过程。除非把过程定义为 Private (在这种情况下,只有在模块中执行时才能调用这个过程),在模块中总可以调用过程。

详细信息 在“编程基础”的“变量、常量和数据类型概述”中讨论了范围的问题。

查看和测试过程的多个实例

可用“立即”窗口重复运行一个过程以测试不同条件的效果。Visual Basic 把过程的每个独立的调用都作为独立的实例来维护。这就可在过程的每个实例中独立测试变量和属性设置值。为看到这是如何工作的,打开一个新的工程并把下列代码添加到窗体模块中:

Private Sub Form_Click()
   AProcedure
End Sub

Sub AProcedure()
   Dim intX As Integer
   intX = 10
   BProcedure
End Sub

Sub BProcedure()
   Stop
End Sub

运行应用程序并单击窗体。Stop 语句把 Visual Basic 置为中断模式并显示“立即”窗口。在过程 "AProcedure" 中把 intX 的值改为 15,然后切换到“立即”窗口并键入:

AProcedure

这样做就会调用了过程 "AProcedure" 并重新启动应用程序。如果切换到“立即”窗口并再次运行 "AProcedure",然后打开“字体”对话框,将看到与图 13.21 中很相象的列表。每个单独的程序运行实例都被列出,并被 [<Debug Window >] 列表分隔开。

图 13.21 “字体”对话框显示过程的多个实例

Visual Basic 维护“立即”窗口的每个命令所执行的过程列表。较新的列表处在表的顶部。可用“字体”对话框选定过程的任何实例,然后在“立即”窗口中打印过程中的变量的值。

例如,如果双击 "AProcedure" 的最早的实例并使用“立即”窗口打印 intX 的值,则值返回 10,如图 13.22 所示。如果在第二次运行 "AProcedure" 时把 intX 的值变成 15,则将那个值与过程的第二个实例一起存储。

图 13.22 在“立即”窗口中打印变量的值

注意 虽然“立即”窗口支持大多数语句,但只有能够在一行代码内完全表示控件结构时,这个结构才是有效的;用冒号将组成控件结构的各个语句隔开。下面的 For 循环在“立即”窗口中是有效的:

For I = 1 To 20 : Print 2 * I : Next I