第十章  其他常用语句及控件
双击滚屏  关闭窗口

 

  10.9 其他常用语句

  10.9.1 强制显式声明变量语句 (Option Explicit)
  10.9.2 定义变量类型
  10.9.3 自定义数据类型
  10.9.4 定义枚举类型
  10.9.5 GoTo 型控制
  10.9.6 打印机输出
  10.9.7 闲置循环与 DoEvents 语句

 

10.9.1 强制显式声明变量语句 (Option Explicit)

避免因为写错变量名而导致错误

例如,交换变量 a 、 b 的值

Temp=a

a=b

b=Tmp ' 把 Temp 写错成 Tmp 

运行结果是使 b 的值为 0 。若改成:

Option Explicit  ‘ 模块级声明

Dim a As Integer,b As Integer,Temp As Integer

. . .

Temp=a 

a=b 

b=Tmp 

运行时 VB 就会发出警告 “Variable not defined”( 变量未定义 ) ,只有把 Tmp 改为 Temp 后才恢复正常

10.9.2 定义变量类型

格式: Def 类型标志 字母范围

示例: DefInt m-P

 

10.9.3 自定义数据类型

用户可以利用 Type 语句定义自己的数据类型

[Private|Public] Type 数据类型名

元素名 1 As 类型名 1 ……

End Type

10.9.4 定义枚举类型

将变量的值一一列举出来,变量的值只限于列举出来的值

[Public|Private] Enum 枚举类型名

成员名 1 [= 常数表达式 ] ……

End Enum

10.9.5 GoTo 型控制

包括 GoTo 语句和 On...GoTo 语句

1. GoTo 语句

语法格式: GoTo { 行号 | 标号 } 

功能:改变程序的执行顺序,跳转到程序中指定的行开始执行

例 10.15 应用 GoTo 语句示例

Private Sub Form_Load()

Show

Print " 整型数 "

GoTo Line1 ' 跳转到标号 Line1 指定的行

Print " 单精度数 "

Line1:

Print " 字符串 "

End Sub

2. On...GoTo 语句

On...GoTo 语句用来实现分支选择控制 ( 类似于 Select...End Select)

语法格式: On 数值表达式 GoTo { 行号表 | 标号表 } 

功能:根据 “ 数值表达式 ” 的值,控制转移到几个指定的语句行中的一个语句行。

例如

On K GoTo Line1, Line2, Line3

执行过程:将 K 四舍五入取整,如果其值为 1 ,则转移到 Line1 标号行;如果为 2 ,则转移到 Line2 标号行;如果为 3 ,则转移到 Line3 标号行。如果 K 的值等于 0 或大于 3 ,则自动执行本语句的下一个语句

10.9.6 打印机输出

1. 直接输出

把信息直接送往打印机

格式: Printer.Print [ 表达式表 ]

(1)Page 属性:设置当前页号

格式: Printer.Page

(2)NewPage 方法:实现换页操作

格式: Printer.NewPage

(3)EndDoc 方法:结束文件打印

格式: Printer.EndDoc

例 10.16 在打印机上打印文字 “ 计算机程序设计 ”

Private Sub Command1_Click()

Printer.FontName = " 隶书 "

Printer.FontSize = 12

Printer.Print “ 计算机程序设计 ”

' 将文本放到 Printer 对象中

Printer.EndDoc ‘ 打印结束

End Sub

2. 窗体输出

先把要输出的信息送到窗体上,再用 PrintForm 方法把窗体上的内容打印出来

格式: [ 窗体名 .]PrintForm

功能:把窗体上的信息输出到打印机

10.9.7 闲置循环与 DoEvents 语句

VB 只有在发生事件时才执行相应的事件过程,如果没有事件发生,则应用程序处于 “ 闲置 ” 状态

所谓闲置循环,就是当程序处于闲置状态时,用一个循环来执行某些操作

为使在闲置循环中也能响应其他操作和事件, VB 提供了一个 DoEvents 语句,其格式为:

[ 窗体号 =]DoEvents[()] 

功能:在闲置循环中,通过 DoEvents 语句可以把控制权交给系统去处理所发生的事件

例 10.17 闲置循环和 DoEvents 应用示例

(1) 建立一个文本框和二个命令按钮,两个事件过程:

 Private Sub Command1_Click()

Text1.FontSize = Text1.FontSize + 1

End Sub

Private Sub Command2_Click()

End

End Sub

(2) 编写 Sub Main 过程

Private Sub MAIN()

Form1.Show

Do While True ' 进入 “ 闲置循环 ”

x = DoEvents

' 把控制权交给系统去处理所发生的事件

' 否则不能处理其他事件

Form1.Text1.Text = Time

Loop

End Sub

(3) 把 Sub Main 设置为启动对象

程序运行后,进入闲置循环,此时将在文本框 Text1 中不断地显示系统时间。

由于加入 DoEvents 函数,则可以在执行闲置循环过程中执行其他操作,如重设窗体的大小及最大化 / 最小化,还能响应命令按钮 Command1 和 Command2 的单击事件等。

当其他操作完成后,又会回到闲置循环中继续执行
 
双击滚屏  关闭窗口
 
版权所有数学与信息科学学院