VisualBasic 程序设计第10章
VB程序设计基础全集

1.1.2 Visual Basic的特点
4.提供了易学易用的应用程序集成开发环境 在Visual Basic的集成开发环境中,用户可设计界面、编写代 码、调试程序,直至将应用程序编译成可执行文件在 Windows上 运行,使用户在友好的开发环境中工作。
5.支持多种数据库系统的访问
利用 Visual Basic 的数据控件,可访问 Microsoft Access、 Dbase、Microsoft FoxPro、Paradox 等 , 也 可 以 访 问 Microsoft Excel、Lotusl 1-2-3等多种电子表格。
录
Visual Basic 6.0程序设计概述 程序设计基础 结构化程序设计与数组 函数与过程 常用控件 图形控件和图形方法 对话框和菜单程序设计 文 件
第9章 数据库与数据访问技术
第1章 Visual Basic 6.0程序设 计概述
1.1 1.2 1.3 1.4 1.5 1.6 1.7
主
编 :陈庆章
前 言
Visual Basic是目前进行Windows应用程序设计的最 佳工具之一,也是最佳的程序设计入门语言,这一看法 已经得到普遍认可。 非计算机专业计算机基础教学的 3 个不同层次,分 别解决的是“操作技能”、“思维训练”、“综合应用 能力”问题。学习一门程序设计语言,主要目的是要提 高读者分析归纳、解决问题的能力,在思维训练方面受 益,并使得读者通过更系统、深入的学习后开发实用程 序成为可能。 因此,本书在内容上精选了Visual Basic 6.0中最基 础、最常用并实用的部分;在编排和风格上力图体现循 序渐进、深入浅出的特点;以样本程序示例教学,阶段 性构筑读者的成就感,使得艰苦的程序设计工作升华为 一种艺术创作,提供了一条通往程序设计高手的捷径。
VB6.0教程

2、工程的组成
应用程序建立在工程的基础之上,一个工程是各种类型文件的集合,它包括工程文件 (Vbp)、窗体文件(Frm)、标准模块文件(Bas)、类模块文件(Cls)、资源文 件(Res)和ActiveX的文件(Ocx)。 1.工程文件 存储了与该工程有关的所有文件和对象的清单,这些文件和对象自动链接到工程文件 上,每次保存工程时,其相关文件信息也随之更新。当然,某个工程下的对象和文件 也可供其他工程共享使用。在工程的所有对象和文件被汇聚在一起并完成编码后,就 可以编译工程,生成可执行文件。 2.窗体文件 存储了窗体上使用的所有控件对象、对象的属性、对象相应的事件工程和程序代码。 一个应用程序至少包含一个窗体文件。 3.标准模块文件 存储了所有模块级变量和用户自定义的通用过程。通用过程是指可以被应用程序各处 调用的过程。 4.类模块文件 用来建立用户自己的对象。类模块包含用户对象的属性及方法,但不包含事件代码。
二、面向过程的语言
用计算机能够理解的逻辑来描述需要解决的问题和解决问题的具体方法、步骤。 面向过程的程序设计的核心是数据结构和算法,其中数据结构用来量化描述需要解决 的问题,算法则研究如何用更快捷、高效的方法来组织解决问题的具体过程。面向过 程的程序设计语言主要有BASIC、FORTRAN、PASCAL、C等。
下面简单介绍如何安装Visual Basic 6.0企业版。 1.将Visual Basic 6.0安装盘放入光躯中,浏览安装盘,双击 “SETUP.EXE” 文件,进入安装向导。 2.直接点击“下一步” 按钮,在“最终用户协议”对话框中仔细阅读 其协议,若确实无疑义,选中“接受协议”,再点击“下一步” 按钮。 3.输入产品的ID号。 4.选中“安装Visual Basic 6.0中文企业版” ,再点击“下一步” 按钮。 在弹出的菜单中点击“继续” 按钮,再点击“确定” 按钮,等待片 刻。 5.一般情况下使用默认安装文件夹即可,当然也可以点击“浏览”按钮 自由更改安装文件夹。 6.点击“典型安装”左边的图标按钮,等待拷贝文件。 7.点击“重新启动Windows” ,重新启动计算机后,在出现的窗体中把 “安装 MSDN”项去掉,再点击“下一步” 按钮,再点击“是”。 8.直接点击“下一步” 按钮 ,把弹出的窗体中的“现在注册”项去掉, 再点击“完成”按钮,即完成了VB的安装。
第10章 VBA模块

23
变量名命名原则
(1)变量名必须以英文字母开头。 (2)变量名不能包含空格、句点等字符。 (3)变量名的长度不能超过255个字符。且 变量名不区分大小写。 (4)不能在某一范围内的相同层次中使用 重复的变量名。 (5)变量的名字不能是VBA的关键字。
24
声明变量
1. 语法: Dim 变量名 [As 数据类型 ] Static 变量名 [As 数据类型 ] Public 变量名 [As 数据类型 ] Private 变量名 [As 数据类型 ] 2. 说明: 其中Dim等是关键字,说明这个语 句是变量的声明语句。如果没有 [As 数据类 型 ]子句,则默认该变量为变体(Variant)类型。
15 空
(一)数值数据类型 VBA中数值数据类型包括字节、整型、 长整型、单精度、双精度、货币等。 数据的存储从 8位到96位不等。数据支持 加、减、乘、除等运算。货币类型的数据保 持小数点左边15位数字,右边4位数字,以满 足精度的需要。
16
(二)布尔数据类型 布尔数据类型以16位数字形式存储。布 尔数据类型只有True和False两个值。布 尔数据支持逻辑或、与、非等运算。 当其他数值类型转化为布尔型时,0转 化为False,其它值均转化为True。当布尔 型转化为其他数值类型时,False转化为 0,True转化为1。
第10章 VBA模块 10章 VBA模块
1
第10章 VBA模块 10章 VBA模块
主要内容
模块及相关的概念 VBA以及程序的组成 VBA代码的调试方法 VBA程序错误处理方法
2
模块及相关的概念
Access 具有强大的界面功能,这使 得用户能够方便地建立各种对象。尤其 是利用宏已经可以执行简单的任务,如 对象的修改和数据的查找。但在某些情 况下,用户需要利用模块提供的强大功 能,完成更难的任务。
大一上学期第10章 程序设计基础

2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
Visual Basic程序设计(安徽中医药大学)智慧树知到答案章节测试2023年

第一章测试1.与传统的结构化程序设计语言相比,Visual Basic 最突出的特点是()。
A:程序设计技术B:结构化程序设计C:程序开发环境D:事件驱动机制答案:D2.下列叙述正确的是()。
A:程序就是软件B:软件是程序、数据和相关文档的集合C:软件既是逻辑实体,又是物理实体D:软件开发不受计算机系统的限制答案:B3.在 VB 中,下列()操作不能打开代码编辑窗口。
A:双击窗体B:选定对象后,按快捷键 F7C:单击窗体或控件D:双击窗体上的某个控件答案:C4.由于VB只能以解释方式运行,所以运行速度慢A:对B:错答案:B5.在 VB 中,表示窗体宽、高的是()。
A:对象B:事件C:方法D:属性答案:B6.VB中打开工程文件时,在资源管理器窗口可以看到工程中所有的文件,所以可以认为工程文件包括了工程中所有的文件,只要保留工程文件即可,其他文件可以不必保留。
A:错B:对答案:A7.在 Visual Basic 中,扩展名.frm 表示的是窗体文件。
A:对B:错答案:A8.在 Visual Basic 中,扩展名.vbp 表示的是工程文件。
A:错B:对答案:B9.要在命令按钮 Cmd1 上显示“计算”,可以使用()语句。
A:Command1.Caption=“计算”B:=“计算”C:Cmd1.Caption=“计算”D:Cmd1.Value=“计算”答案:C10.在代码编辑窗口中,当从对象框中选定了某个对象后,在()中会列出适用于该对象的事件。
A:工具箱B:属性窗口C:工具栏D:过程框答案:D第二章测试1.多窗体是指一个应用程序中有多个并列的普通窗体,每个窗体可以有自己的界面和程序,完成不同的功能。
A:对B:错答案:A2.Load 语句不会把一个窗体装入内存。
A:错B:对答案:A3.UnLoad Me,表示关闭当前窗体,这里的关键字 Me 代表 UnLoad Me 语句所在的窗体。
A:错B:对答案:B4.决定窗体标题栏内容的属性是()。
vb最全最经典课件(免费)

在中,将反映对象的属性和行为封装 在一起,是面向对象编程的基本元素。
本章目录
2.类的概念
类 同种对象的集合与抽象,是创建对象实例的 模板,包含所创建对象的属性描述和行为特征的 定义。 例如,人类是具体人的抽象。每个人有不同的身 高、体重等属性值和不同的行为。 工具箱中的可视图标是系统设 计好的标准控件类。通过将控件类实例化,得到 真正的控件对象。在窗体上画一个控件,就将类 转换为对象,创建了一个控件对象(简称控件)。
本章目录
2.2 建立简单的应用程序
例2.2 编写一个人民币与美圆兑换的程序。 建立一个应用程序分为以下几步进行: (1) 建立用户界面的对象 (2) 对象属性的设置 (3) 对象事件过程及编程 (4) 保存和运行程序
代码说明
本章目录
对象事件过程及编程
代码窗口的对象列表框可显示窗体所有对象 过程列表框列出所选中对象的所有事件 例如,在按钮Button2的Click事件加入代码:
1.1 概述 1.2 集成开发环境 1.3 使用帮助系统
本章目录
1.1 概述
1.1.1 Visual Basic的发展 20世纪60年出现Basic语言; 20世纪80年代,True Basic、Quick Basic和 Turbo Basic等; 1991年Microsoft公司推出Visual Basic1.0,以 可视化工具为界面设计、结构化Basic语言为基 础,以事件驱动为运行机制。从1991年的VB1.0 至1998年的V B6.0的多次版本升级,功能更强 大、完善,应用面更广; 2002年正式发布Visual 。
本章目录
事件过程
事件过程 应用程序处理事件的步骤 它针对某一对象并与该对象的一个事件相联系 应用程序设计的主要工作就是为对象编写事件过 程的代码。事件过程的形式如下:
VB教程(10)
13
Visual Basic程序设计教程
10.3.3 坐标属性 ·使用坐标属性可以更改容器的坐标刻度,也可以 自定义坐标系。
ScaleMode:设置坐标刻度,缺省值为1(缇) ScaleLeft:表示或设置对象左边界水平坐标 ScaleTop:表示或设置对象上边界垂直坐标 ScaleWidth:表示或设置对象内水平度量单位数 ScaleHeight:表示或设置对象内垂直度量单位数 CurrentX:当前输出的水平坐标。程序中使用。 CurrentY:当前输出的垂直坐标。程序中使用。 14 Visual Basic程序设计教程
图像一般是指绘制、摄制或印制的形象。
可将它们装载到图片框、影像框可窗体上
4
Visual Basic程序设计教程
【例10-1】设计一个模拟单摆 ·控件: 图片框控件Picture1:作单摆容器 直线控件Line1:作绳索 形状控件Shape1:作球(设计界面中为矩形) 定时器控件Timer1:控制摆动。
5
Visual Basic程序设计教程
·2个模块级变量A和D,表示摆动角度和方向。 ·2个事件过程: Form_Load,初始化界面和控件属性 Timer1_Timer,控制单摆的运动。
6
Visual Basic程序设计教程
Option Explicit Dim A As Integer, D As Integer ' 模块级变量,A表示角度,D表示方向 Const PI = 3.1415926 Private Sub Form_Load() Form1.Width = 1.3 * Form1.Height '设置窗体的宽度和高度比例 Picture1.Width = 1.5 * Picture1.Height '设置图片框的宽度和高度比例 Picture1.Scale (-150, -5)-(150, 195) '更改坐标系统 Shape1.FillStyle = 0 '使形状控件的填充模式为"实心 " Shape1.FillColor = vbRed '使形状控件填充红色 Shape1.BorderColor = vbRed '使形状控件的边界颜色为红色 Shape1.Width = 15 '按坐标系,更改形状控件大小 Shape1.Shape = 3 '使形状控件的形状为圆形 Line1.BorderColor = vbRed '使绳索颜色为红色 Line1.X1 = 0: Line1.Y1 = 0 '使绳索上端在原点(0,0)上 Picture1.AutoRedraw = True '使图片框的重绘属性为True Picture1.Line (-10, 0)-(10, 0) ' 顶端画一条固定绳索的横线 Timer1.Interval = 100 A = -20: D = -1 ' 设置初始角度和方向 End Sub
Visual Basic程序设计(哈尔滨商业大学)智慧树知到答案章节测试2023年
绪论单元测试1.VB6.0包括三种版本,分别为学习版、专业版和企业版。
A:对B:错答案:A2.学习版是VB的基础版本,该版本包含了所有VB的标准控件及网格控件、数据绑定控件和Tab对象。
A:错B:对答案:B3.专业版是为专业编程者提供了一整套功能完备的开发工具。
A:错B:对答案:B4.企业版包含了专业版的全部功能,增加了自动化管理器、部件管理器、数据库管理工具、Microsoft Visual Source Safe面向工程版的控制系统等。
A:错B:对答案:B第一章测试1.下面选项中不能运行Visual Basic程序的操作是()A:按F5键B:从菜单栏运行菜单中选“全编译执行”菜单命令C:双击窗体D:单击“启动”按钮图标答案:C2.Visual Basic窗体设计器的主要功能是()A:画图B:编写源程序代码C:显示文字D:建立用户界面答案:D3.可视化编程的最大优点是()A:不需要编写大量代码来描述图形对象B:所见即所得C:具有标准工具箱D:一个工程文件由若干个窗体文件组成答案:A4.一个工程文件可包含多种类型的文件,()文件不包含其中。
A:窗体文件B:可执行文件C:资源文件D:工程文件答案:B5. Microsoft Visual Basic6.0包括三种版本,其中不包括()A:专业版B:企业版C:通用版D:学习版答案:C第二章测试1.在Visual Basic中,常量12#的数据类型是()A:长整型B:双精度浮点型C:字符串D:整型答案:B2. x是小于100的非负数,用正确的Visual Basic表达式是()A:0<=x OR x<100B:0C:0<=x<100D: x>=0 AND x<100答案:D3.不能正确表示条件“两个整型变量A和B之一为0,但不能同时为0”的布尔表达式是()A:A B=0 AND A<>BB: A B=0 AND (A=0 OR B=0)C:(A=0 OR B=0 )AND A<>BD: A=0 AND B<>0 OR A<>0AND B=0答案:B4.Boolean 类型的数据由()字节组成A:1B:2C:3D:4答案:B5.20.表达式X+1>X是()A:算术表达式B:关系表达式C:字符串表达式D:非法表达式答案:B第三章测试1. Inputbox()函数的返回值类型为()A:变体型B:字符型C:逻辑型D:数值型答案:B2.要使循环体至少执行一次,应使用()循环A:Do–Loop while|untilB:While-wendC:For-nextD:do[while|until]-loop答案:C3.程序的基本控制结构是()A:顺序结构、选择结构和循环结构B:For…Next结构、Do…loop结构C:单行结构和多行结构D:顺序结构、多分支结构和单分支结构答案:C4.以下Case语句中,能正确描述Y的绝对值大于7的是()A:Case -6 To 6B: Case Not(-6 To 6)C:Case Is<-6,Is>6D:Case Abs(Y)>6答案:B5.以下Case语句含有错误的是()A:Case Is>10 And Is<50B:Case Is>10C:Case 3,5,Is>10D:Case 0 To 10答案:A第四章测试1.如下数组声明语句,正确的是()A: Dim A[3,4] As IntigerB:Dim A(3 4) As IntegerC:Dim A(3,4) As StringD:Dim A(N,N) As Single答案:C2.如果有声明Option base 1, Dim arr(3,3),则该数组共有()个元素A:9B:16C:6D:4答案:A3.以下说法不正确的是()A:使用不带关键字Preserve的ReDim语句可以改变数组各维的上、下界B:使用不带关键字Preserve的ReDim语句可以对数组中的所有元素进行初始化C:使用不带关键字Preserve的ReDim语句可以重新定义数组的维数D:使用不带关键字Preserve的ReDim语句可以改变数组的数据类型答案:D4.下列有关控件数组的说法中,错误的是()A:控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组B:控件数组中每个元素的下标由控件的Index属性指定C:控件数组中的所有控件不得具有各自不同的属性设置值D:控件数组中的所有控件共享同一个事件过程答案:C5.已知有数组声明:Dim a(-1 to 3,2 to 5) as integer,引用数组元素,正确的是()A: a(-1,5)B:a(1)C: a(0,6)D:a[-1,2]答案:A第五章测试1.假定一个Visual Basic应用程序由一个窗体模块和一个标准模块构成。
VB程序设计课件(全套)
在VB中,将反映对象的属性和行为封装在一起,是面向对 象编程的基本元素。
21
上一页
下一页
2.类的概念
本章目录
类是创建对象实例的模板,是同种对象的集合与抽象,它包 含所创建对象的属性描述和行为特征的定义。 例如,人类是人的抽象,一个个不同的人是人类的实例。各 个人具有不同的身高、体重等属性值和不同的行为。 在 VB中,工具箱上的可视图标是 VB系统设计好的标准控件 类。通过将控件类实例化,可以得到真正的控件对象,也就是 当在窗体上画一个控件时,就将类转换为对象,即创建了一个 控件对象,简称为控件。
25
上一页
下一页
事件
本章目录
2. 事件、事件过程和事件驱动 (1) 事件 事件就是发生在对象上的事情。同一事件,作用于不同的对 象,就会引发不同的反应,产生不同的结果。 例如,在学校,教室楼的铃声是一个事件,教师听到铃声就 要准备开始讲课,向学生传授知识;学生听到铃声,就要准备 听教师上课,接受知识;而行政人员对铃声可不于响应。 在VB中,系统为每个对象预先定义好了一系列的事件。 例如,单击 (Click) 、双击 (DblClick) 、改变 (Change) 、获 取焦点(GotFocus)、键盘按下(KeyPress)等。
9
上一页
下一页
VB功能特点
2 功能特点 1) 具有面向对象的可视化设计工具 2) 事件驱动的编程机制 3) 提供了易学易用的应用程序集成开发环境 4) 结构化的程序设计语言 5) 强大的数据库功能 6) Active技术 7) 网络功能 8) 多个应用程序向导 9) 完备的Help联机帮助功能
10
Visual Basic 程序设计简明教程
第一章 Visual Basic程序设计概述(2) 第二章 VB简单的程序设计(6) 第三章 VB语言基础(4) 第四章 基本的控制结构(8) 第五章 数组(5) 第六章 过程(4) 第七章 常用控件(2) 第八章 界面设计(2) 第九章 文件(2) 第十章 图形(1) 第十一章 数据库技术(自学) 第十二章 系统开发案例 (自学)
Visual Basic程序设计第10章 ActiveX控件简介
Microsoft Windows Common Controls 3 6.0 Microsoft Winsock Control 6.0
COMCT332.OCX MSWINSCK.OCX
Logo
第10章 ActiveX控件简介
1
知识要点
2
3 4
习题与解答
实训指导
测验题
Company Logo
Logo 10.2习题与解答
Company Logo
Logo
3.若要向TreeView控件动态地加入node, 对key值该如何设置? 答:一定要在设计中保证Key值的唯一性, 即不同节点的Key值必须是不同的,如果变 量的值和已有的节点的Key相同,则一定会 报告错误。不过使用Add添加节点时,Key 值可以省略不填。
CommonDialog
DBGrid DBList, DBCombo DataGrid DataList, DataCombo MSFlexGrid Grid MSHFlexGrid MAPIMessages, MAPISession Multimedia MCI RichTextBox Microsoft Tab Control TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListView, ImageList, Slider, ImageCombo CoolBar WinSock Company Logo
Compaቤተ መጻሕፍቲ ባይዱy Logo
Logo
2.如何判断用户选择的是TreeView的父 节点还是子节点? 答:可以使用SelectedItem属性获得用户 选择的节点。SelectedItem属性是Node类 型,可以利用Node类型Children属性知道 该节点有几个子节点,也可以使用Node类 型的FullPath属性知道该节点的位置,或 Parent属性获得父节点。使用这些属性你 就可以很容易做判断了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
添加监视对象后,【监视】面板变为如图10-20所示。 用【监视】面板来监视表达式时,有3种不同的监视方式, 即【添加监视】对话框中的3个单选按钮对应的监测类型。 监视类型为“监视表达式”时,程序不会自动进入中断 模式,只有当程序进入中断模式后才会监视表达式并显 示其值;监视类型为“当监视值为真时中断”时,则监 视到表达式为真时程序便会自动进入中断模式,并在 【监视】面板中显示监视表达式的值;监视类型为“当 监视值改变时中断”时,监视表达式的值一旦发生改变, 程序便会自动进入中断模式,并在【监视】面板中显示 监视表达式的值。
第10章 程序调试与维护
10.1
知识解析
10.2
【案例5】简单文字显示程序设计
10.1 知识解析
编写任何一种计算机语言都难免出错, 而且程序越大、代码越复杂,越容易出现错 误。有些错误是可以避免的,而有些错误是 不可避免的;有些错误对程序的运行影响不 大,而有些错误对程序运行的影响是致命的。 因此,有效的调试手段和完善的错误处理手 段对于每个编程人员来说都是必需的。
图10-14 【本地】面板
②【立即】面板。 【立即】面板通常是用来查看某个变量或属性的值。 在中断模式下,选择【视图】/【立即窗口】命令或单击 【调试】工具栏上的按钮,便可以调出【立即】面板, 如图10-15所示,它一般显示在窗口最下面,拖动其标题 栏便可以将其移动。【立即】面板只是为用户提供一个 命令窗口,用户要想查看某个变量值或某个属性值,只 需在【立即】面板中输入相应的变量名或属性名,并在 变量名或属性名前加一个问号,输入完毕后,按Enter键 换行,这时所输入的变量值或属性值便会显示在下一行, 如图10-16所示。除了可以查看变量值或属性值之外,还 可以利用【立即】面板来更改变量值或属性值,如图1017所示。
边界指示区
断点的设置
图10-13 设置断点后的代码窗口中
使用窗口监视程序 ①【本地】面板 【本地】面板是用来显示当前过程中 所有变量的值,它只显示当前过程中可用 的变量,如果过程发生改变,则【本地】 面板所显示的变量也会跟着改变。在中断 模式下,选择【视图】/【本地窗口】命令 或单击【调试】工具栏上的 按钮,便可 以调出【本地】面板,如图10-14所示。
10.1.4 逻辑错误处理
逻辑错误既不能被监测或捕捉,也不会有错 误提示框提示出错,是3类错误最难被发现的。 如果一个应用程序本身没有编译错误,并且在运 行过程中也没有出现实时错误,但运行后所得到 的结果不正确,通常这种情况都是由于逻辑错误 造成的。这类错误的排除最为复杂,需要用户不 断调试程序,然后分析调试的结果,才能发现错 误产生的原因。在Visual Basic 6.0中,程序的调 试一般要经历3个过程:设置断点、使用窗口监 视程序、控制程序运行。
10.1.1 Visual Basic 6.0工作模式
为了及时发现错误,有必要先知道程 序是在何种模式下工作。Visual Basic 6.0 为用户提供了设计、运行和中断3种工作模 式。在设计模式下,用户可以进行设计工 作,完成窗体的设计和程序代码的编写; 在运行模式下,用户只能查看程序运行的 结果以及程序代码,但不能修改程序代码; 在中断模式下,应用程序暂时被停止,用 户可以在程序暂停时调试和修改程序。
编译错误一般是可以避免的。Visual Basic 6.0为用户 提供的自动语法检查功能,可以很容易地捕捉到编译错 误。选择【工具】/【选项】命令,弹出图10-7所示的 【选项】对话框。在【编辑器】选项卡中,可以看到 【自动语法检测】复选框默认被勾选。因此一旦遇到语 法错误,便会弹出编译错误提示框,并且以醒目的样式 显示错误所在的代码行。为了能够及时发现编译错误, 在编写程序时,变量必须被声明之后才能够被使用。为 了强调变量必须被声明,可以在程序的开始部分添加 Option Explicit语句。在【选项】对话框中,如果勾选 【要求变量声明】复选框,则Visual Basic 6.0会自动在程 序的开始添加Option Explicit语句,但必须在未添加任何 代码之前勾选该复选框。
10.2案例——密码破解程序
具体操作步骤见教材
案例小结
程序错误是任何编程人员都会遇到的问 题,在本章主要学习了如何排除和预防各 种错误,让自己编写的应用程序尽可能完 美。要快速准确地排除错误,编程人员除 了要认真、细致以外,还要求具备一定的 编程经验,丰富的经验是排除任何错误的 最佳武器。
除了使用上面介绍的方法,还可以使用Stop 语句来设置断点。程序在运行的过程中,一旦遇 到Stop语句,就会将Stop语句所在行看做是断点 的位置,并暂停应用程序,进入中断模式。Stop 语句所设置的断点和直接设置的断点虽然实现的 功能一样,但它们之间还存在着一定的差别。直 接设置的断点,将随着应用程序的关闭而消失, 而Stop语句是作为代码的一行而加入程序中的, 因此不会随着程序的关闭而消失。
图10-8 实时错误提示框
实时错误处理程序执行完毕之后,如果想恢 复程序的运行,可以使用Resume语句来完成, 其语法结构有以下3种形式。 Resume 0或Resume:结束实时错误处理程序, 并从产生错误的语句开始恢复运行。 Rexume Next:结束实时错误处理程序,并从 产生错误的语句的下一个语句开始恢复运行。 Resume line:其中参数line是行标签或行号, 用来指定从第几行开始恢复运行,参数line所指 定的行必须和错误处理程序处于同一个过程中。
图10-15 【立即】面板
图10-16 查看变量或属性值
图10-17 设置变量或属性值
③【监视】面板。 【监视】面板是用来监视某一个变量或表达式变化的情况。在 中断模式下,选择【视图】/【监视】面板命令或单击【调试】工 具栏上的按钮,便可以调出【监视】面板,如图10-18所示。为了 让【监视】面板起到监视程序的功能,还需添加监视的对象,具体 添加过程如下。 1.选择【调试】/【添加监视】命令,弹出【添加监视】对话框,如 图10-19所示。 2.在【表达式】文本框中输入要监视的对象,可以是变量,也可以 是一个表达式,还可以是控件或窗体的某个属性,在【上下文】栏 中选择要监视的范围,在【监视类型】栏中选择监视类型。 3.单击 按钮,完成监视对象的添加。
【例10-1】实时错误处理 。
具体操作步骤见教材
说明
实时错误很容易出现在数学运算、打开或保存文件中, 因此在编写这两类程序,一定要注意,最好要编写实时 错误处理程序。实时错误处理一般要经历两个过程,首 先进行实时错误捕获,然后再对实时错误进行处理。 在动手操作中,为了避免出现除数为0而程序无法运行 的情况,在程序中专门添加了实时错误处理程序。代码 如下: On Error GoTo errproce 用于捕获实时错误,其中“errproce”错误处理代码所 在行的标志,一旦出现实时错误(除数为0)便会直接跳 到“errproce”标示的错误处理程序。
设置断点
如果怀疑某条或某段语句是产生逻辑错误的原因,可 以通过设置断点,让程序暂停下来,然后通过【调试】 菜单或【调试】工具栏来调试程序,找到逻辑错误出现 的位置。断点的设置,可以通过以下步骤来完成。 ① 在代码窗口中将光标移到待设置断点的代码行。 ② 在代码行左侧的边界指示区单击鼠标或直接按F9 键, 该代码行会以反白样式显示,并且在边界指示区会出现 一个实心小圆点●,表示断点已设置完毕,如图10-13所 示。如果再次在边界指示区单击鼠标或直接按F9键,则 取消断点的设置。
【例10-2】九九乘法表的设计 具体操作步骤见教材
说明
由于逻辑错误主要是由于程序的逻辑关系发 生错误造成的,使得程序的结果和预想结果不一 致,因此这类错误一般很难被发现。不过, Visual Basic专门为用户提供了3个用于调试的面 板:【本地】面板、【监视】面板和【立即】面 板,利用这3个面板,可以实时地监测到各个变 量或属性是如何变化的,有利于分析逻辑错误产 生的具体原因,但这3个面板只有在程序处于中 断模式时,才会发挥作用。
图10-5 编译错误提示框(1)
图10-6 编译错误提示框(2)
图10-7 【选项】对话框
10.1.3 实时错误捕捉
实时错误一般在运行过程中才会出现,主要是由于执 行了不能执行的操作而引起的。例如,在进行除法运算 时,除数为零,就会弹出如图10-8所示的提示框;在写 文件时,磁盘已满等都会引起实时错误。如果程序不能 处理这类错误,就会使程序被意外终止,甚至会导致死 机。在Visaul Basic 6.0中,实时错误可以通过On Error 语句来捕获,具体语法结构如下: On Error GoTo 行号或行标号 其中“行号或行标号”为错误处理程序所在的起始位置。 如果On Error语句捕获到了实时错误,便会暂停执行剩 下的代码,立即跳转到错误处理程序。
图10-18无监视对象的【监视】面板
图10-19【添加监视】对话框
图10-20 有监视对象的【监视】面板
控制程序运行。 程序代码设计完毕后,直接单击 按钮,则程序直 接运行完毕,程序的运行过程不可见。为了调试程序, 查找逻辑错误出现的位置,在程序进入中断模式后,可 采用逐语句地运行程序或逐过程地运行程序,具体过程 如下。 逐语句地运行程序:单击【调试】工具栏上的 按钮 或选择【调试】/【逐语句】命令,程序便逐语句运行, 即每单击一次 按钮,程序运行一条语句。运行完一 句后,程序便进入中断模式。 逐过程地运行程序:单击【调试】工具栏上的 按钮 或选择【调试】/【逐过程】命令,程序便逐过程运行, 即每单击一次 按钮,程序运行完一个过程。运行完 一个过程后,程序便进入中断模式。