版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 1 章 visual basic 概述一、vb 是在 windows 平台下,用于开发和创建具有图形用户界面的应用程序的工具。 二、vb 是面向对象的程序设计语言;工作方式为事件驱动/消息驱动。1对象对象是动作体的逻辑模型,是人们可控制的某种东西,应用程序的每个窗体和窗体上的 种种控件都是 vb 的对象2属性属性指对象的特性。3方法方法指对象可以进行的动作或行为。4事件事件是指能被对象所识别的动作。5事件驱动只有在事件发生时程序才会运行。6工程工程是应用程序文件的集合,一个工程一般会包含下列文件,如表 1l 所示。表 11 应用程序文件类型文件类型说明工程文件(vbp)窗体文件(frm)二
2、进制数据文件(frx)标准模块文件(bas) 类模块文件(cls)它是与该工程有关的全部文件和对象的清单,该文件是必选项 它包含事件过程,以及该窗体及窗体上的各个控件对象的属性设 置以及相关的说明,该文件是必选项当窗体中含有二进制属性(如图片或图标)时,该文件将自动产生 它包含可以被任何窗体或对象调用的过程程序代码,该文件是可 选项该文件是可选项包含 activex 控件的文件(ocx) 该文件是可选项第 2 章创建用户界面知识点概括1用户界面用户界面是应用程序中最重要的部分,是程序与用户进行交互的桥梁,标准的 windows 应用程序界面都是由窗口、菜单条、各种按钮、文本框、列表框等对象构成
3、的。2窗体窗体是包容用户界面或对话框所需的各种控件对象的容器。在创建一个新的工程时,默认的第一个窗体即为启动窗体。3控件控件是与用户进行交互的可视化部件,向窗体上添加控件应在窗体编辑器中进行。 4命令菜单命令菜单是应用程序窗口的基本组成元素之一,它由菜单条、菜单、菜单项、子菜单、 弹出式菜单组成,可以通过 vb 提供的菜单编辑器创建程序菜单。(1) 连字符()(2) &5设计用户界面的步骤(1) 确定窗体的大小和位置。(2) 根据程序的功能和要求,添加所需的控件。(3) 合理地分布控件的位置与大小。(4) 设置各个对象的属性。6窗体及常用控件的常用属性、事件、方法熟悉各对象的常用属性、事件和方
4、法,对于创建应用程序有着举足轻重的作用,表 21 给 出了窗体及常用控件的常用属性、事件以及方法使用说明。表 21 窗体及常用控件的常用居住、事件以及方法一览表对 象名称说明通用属性namecaptionfontlefttopheightwidthenabled设置对象在程序代码中的引用名设置对象的标题栏中或图标下面的文本 设置文本的字体、字型、字号等设置对象的左边界距容器坐标系纵轴的距离 设置对象的上边界距容器坐标系横轴的距离 设置对象的高度设置对象的宽度设置对象是否被激活通用属性 visible backcolorforecolorindextabinfextabstopstyle设置对象
5、是否可见设置对象的背景色设置对象的前景色设置控件在控件数组中的标识号设置窗体中的对象响应tab键的顺序 设置用户是否可以使用tab 键来选定对象 设置控件的外观boderstyle属 iconpicture性autoredrawhideshow设置窗体的边框风格设置运行时窗体最小化所显示的图标 设置窗体上的背景图像设置从 graphics 方法到一个持久性位图的输 出用于隐藏 mdifohn 或 fonn 对象,但不卸载 用于显示 mdifom 或 fom 对象方法moveprintcls用于改变对象的位置和大小用于在 form 和 picturebox 上显示文本和图形 用于清除 form
6、和 picturebox 上的文本和图形窗体printform用于将 from 对象的图形逐位发送给打印机(form) initialize当应用程序创建某对象时发生,可应用该事件 初始化窗体所用的数据,它在 load 事件前发生事件loadunloadc lickd blclickresizeactivatedeactivate当一个窗体被加载时发生当窗体卸载时发生当在一个对象上单击鼠标左键时发生 当在一个对象上双击鼠标左键时发生 当一个对象首次显示或窗口状态改变时发生 当一个窗体成为当前窗体时发生 当一个窗体不再是当前窗体时发生对 象文本框(textbox)属性方法名事件称textmaxl
7、engthmultilinea1ignmentscrollbarpasswordcharselstartsellengthseltextr efreshs etfocuschangelostfocusgotfocus说明设 置 控 件 中 包 含 的 文 本 ( 小 于 32kb)设置控件中可以输入字符的最大 数,0 为任意个字符设置用户是否可以接受多行文本 设置复选框或选项按钮或一个控件 的文本的对齐设置对象是否有水平或垂直滚动条 设置是否在控件中显示用户键入的 字符设置所选择文本的起始点设置所选择文本的字符数设置包含当前所选择文本的字符串 强制全部重绘一个窗体或控件 将焦点移至指定的窗体或
8、控件 当文本框的内容改变或通过代码改 变 text 属性的设置时发生 当对象失去焦点时发生当对象获得焦点时发生命令按钮(commandbutton)标签属性方法事件属性keypressc anceld efaultstylevaluesetfocusclickautosizewordwrapborderstyle当一个对象具有焦点,按下并松开 一个键时发生设置该命令按钮是否为窗体的 “取消”按钮设置该命令按钮是否为窗体的默 认按钮设置命令按钮的外观是标准风格 或图形风格设置命令按钮是否选中,true 为 选中,false 为未选中设置控件是否能自动调整大小以显 示所有的内容设置控件是否扩大以多
9、行方式显示 标题文字,前提是 autosize 为 true 设置边框是立体的或是平面的(label)backstyle设置背景是透明的或是不透明的选项按钮方法事件属性b efresh、movec 1ick、dblclickcaptionaliglment设置选项按钮旁的标题文字 设置选项按钮是在标题文字的(optionbutton)事件左边还是在右边设置选项按钮是否被选中,truevalue为选中,false 为未选中click、dblclick同选项按钮caption属alignment同选项按钮复选框性设置选项按钮是否被选中, 0(checkbox)事件框架(frame)valuecli
10、ckcaption表示未选中,1 表示选中,2 表 示变灰,暂时不能访问该属性为空时,可作为一个封 闭边框对 象属名称listtextlistindex说明设置列表框中包含的项目表示运行中在列表框中最后选中的列表项 的正文文本表示运行中在列表框中最后选中的列表项 序号性listcount表示运行中列表框中的列表项数目列表框(listbox)sortedcolumnsadditem设置是否将列表框中的列表项按 ascii 码 自动排序设置列表框中的项目是按一列还是按多列 显示向列表框添加项目方法事件属性removeltemclearclick、dblclickstyle将列表框中所选中的列表项删
11、除 清空列表框中的所有项目决定组合列表框的外观组合框其余同 listbox方法同 listbox(combobox)事件当 style 为 0 或 2 时可响应 click 事件,当 style 为 1 时可响 应 dblclick 事件,当 style 为 0 或 1 时可响应 change 事件图片框属性pictureautosize设置图片框的背景图像设置图片框是否能自动调整大小以显示完整的图片(picturebox)图像(image)方法事件属性print、move、refresh clickpicturestretch设置图像控件的背景图像设置是否缩放图形来适应图像控件大方法定时器
12、属性 (timer)move、refreshenabledinterval小设置该控件是否被激活设置调用 timer 控件的 timer 事件间隔的时 间(单位为 ms,最大为 65535ms)事件timer timer 控件可以有规律地每隔一段时间执行一次代码属性minmaxlargechange设置滚动块位于滚动条顶端或者最左侧 时所代表的值设置滚动块位于滚动条底端或者最右侧 时所代表的值设置当用户在滚动条的空白处单击时增 减的值水 平 垂 直 滚动条(hscrollba vscrollbar)smallchangevalue设置当用户在滚动条两端的箭头按钮上 单击时增减的值设置滚动条当前
13、的值事件change在滚动块移动后或通过代码改变 value 属scroll性的设置时发生 在滚动块移动时发生注:加*号的属性为只能通过代码设置的属性(即在属性窗口中没有显示 7、print 方法第 3 章语言基础31 知识点概括一个应用程序就是一个工程,在一个工程中可以包含若干个文件,应用程序的基本组成 如图 31 所示。应用程序的基本组成工程文件(.vbp)一个或若干个窗体模块(.frm)一个或若干个标准模块(.bas) 其它文件图 3-1 应用程序的基本组成事件过程(sub)用户自定义过程(sub)用户自定义函数过程(function)用户自定义过程(sub) 用户自定义函数过程(fun
14、ction)1过程与模块程序的最基本单位是过程,一般在 vb 中将过程分为事件过程和通用过程有窗体模块和标 准模块,关于过程与模块的概念和说明见表 31。表 31 过程与模块概 念过程模块2数据类型事件过程通用过程窗体模块(.frm)标准模块(bas)说明为窗体以及窗体上的对象所编写的用来响应由用户 或系统引发的各种事件的程序代码一个应用程序中的不同窗体或者一个窗体内不同的 事件过程可以共享的程序代码窗体模块中包含事件过程,以及该窗体及窗体上的 各个控件对象的属性设置和相关的说明;窗体模块还 可包含通用过程,它对来自任何事件过程的调用都作 出响应标准模块中保存的都是通用过程及相关的说明数据是计
15、算机程序处理的对象,vb 具有强大的数据处理能力,在 vb 中定义了标准数据 类型,其具体说明见表 32。表 32 数据类型数据类型整型类型名称integer类型说明符 存储空间(byte) 2初始值数值型长整型long4单精度型双精度型single ! 4double # 80货币型currency8字节型byte 1字符型变长字符串 定长字符串string $string*size10+串长度串长度空字符串布尔型日期型booleandate2 false8 0:00:00变体型对象型variantobject=164空字符串3常量常量就是在程序运行中取值始终保持不变的数据,可以是具体的数值
16、也可以是专门说明的符 号,各种常量的表示见表 33。表 33 常量类 型示例数值常量字符常量逻辑常量日期常量 回车与换行符123、-9876e-5(单精度)、314159265d8(双精度)、0137(八进制)、h2ab8(十六进制)visual basic、中国 北京 2008 奥运会(注:字符常量一定要 放在西文双引号内)true(真)、false(假)、非 0 值转换为 true、0 值转换为 false #12:35:48#、#7122004#chr(13)十 chr(10)或 vbcrlf符号常自 语句格式:const 常量名 类型说明符 as 数据类型表达式 定 const pi!
17、31415926义 const olympic as sting”中国 北京 2008 奥运会”量颜色常量红色绿色蓝色黄色vbredvbgreenvbbluevbyellow青色洋红色黑色白色vbcyanvbmagentavbblackvbwhite4变量变量就是以符号形式出现在程序中,其值在程序执行期间可以发生变化的数据。变量的 作用域的不同,可将变量分为局部变量、窗体/模块级变量和全局变量。表 34 中给出了各 种变量的声明方式和声明位置的比较。声明位置局部变量过程中量表 34 变窗体模块级变量 通用声明全局变量通用声明声明方式作用域dim dimstatic(静态) private pu
18、blic在定义该变量的模块 在工程内的所有过程中都仅在说明它的过程中使用 或窗体的所有过程内 有效均有效5运算符与表达式(1)运算符。在程序设计的过程中,经常要进行各种各样的运算,在 vb 中包括四种运算:算术运算、 连接运算、关系运算和逻辑运算,相关运算符的说明见表 35表 35 运 算 符类 型运算符优先等级算术运算符 (指数) (取负) *和(整除) mod(取余) + 和 连接运算符 +(运算符两边同为字符型)和(强制将两个不同类型的表达式作字符串连接) 关系运算符 、,(不等于)、is(比较两个对象的引用变量)、like(比较样式)逻辑运算符 not(逻辑非)一 and(逻辑与)一
19、or(逻辑或)一 xor(逻辑异或)(2)表达式。把常量和变量用运算符、括号连接起来的式子就是表达式。在 vb 表达式中只能使用圆 括号,且括号必须成对使用.(3)运算规则.运算符运算优先顺序为:括号最优先-术运算-连接运算-关系运算-逻辑运算。 相同数据类型的数据进行运算,运算结果也是同一类型。不同数据类型的数据进行运算,运算结果为两个运算对象中存储长度较长的对象的类 型.例如:dim x as integer,y as integerx200:y200print x*y执行以上程序段,将出现“溢出”错误信息,若将其中 y as integer 改为 y as single , 则运算结果为
20、 40000。6常用内部函数vb 中有两类函数:内部函数和用户自定义函数。用户自定义函数将在第8 章中进行介 绍。内部函数是由系统提供的,可在任何一个 vb 程序中随时使用的程序段。表 36表 310 分别列出了常用函数的格式与功能。注意:使用时要注意每个函数的功能、参数个数及类型,以及函数返回值的类型。表 36 算术函数示例函数名功能表 达 式结 果sgr(x)log(x)求 x 的平方根值,x0 sqr(16) 4 求 x 的自然对数,x0 log(2) 069314exp(x)abs(x)hex(x)求以 e 为底的幂值,即求 ex 求 x 的绝对值求 x 的十六进制数值,结果为 一字符
21、串exp(2) 7.38906 abs(48) 4.8 hex(1000) 3e8oct(x)sgn(x)求 x 的八进制数值,结果为一字 oct(1000) 1750 符串求 x 的符号,x0 为 1,x0 为 sgn(-10) -1 0,x0 为-1 sgn(10) 1rnd(x)产生一个在 0 ,1 区间均匀分布的随机数。若产生 mn 之间的 int(rnd 随 机 整 数 , 其 通 式 为 : *(99-10)+1)+10 int(rnd*(n-m)+1)+m产 生 两 位 随 机整数sin(x)cos(x)求 x 的正弦值,x 单位为弧度 sin(30*3.141592 0.518
22、0)求 x 的余弦值,x 单位为弧度 cos(30*3.141592 0.866025180)tan(x)求 x 的正切值,x 单位为弧度tan(30* 3.141592 0.57735180)atn(x)求 x 的反正切值,x 单位为弧度 atn(30*3.141592 0.48235180)表 3-7 字符串函数函数名功能示例表 达 式结 果len(st)求字符串 st 的长度(字符个数)ch=”i am a student”14len(ch)left(st,n) 从字符串 s,左边起取 n 个字符 left(ch,4) right(st,n) 从字符串 st 右边起取 n 个字符 rig
23、ht(ch,7)从字符串 s,左边第 n1 个位置开始mid(st,n1,n2) 向右起取 n2 个字符,若 n2 省略,则 mid(ch,3,2)取从 n1 到结尾的所有字符 mid(ch,6)“i am”“studentg”am”a student”ucase(st)lcase(st)将字符串 st 中所有的小写字符改为 ucas6(neu) 大写字符将字符串 st 中所有的大写字符改为 lcase(name) 小写字符”new”name”ltrim(st)rtrim(st)去掉字符串 st 的前导空格 去掉字符串 st 的尾随空格ltrim( new) rtrim(”new ”)”hew
24、”new”trim(st)去掉字符串 st 的前导空格和尾随空 tnm(” new ”) ”new” 格instr(n,st1,st2) 从 st1 的第 n 个位置起查找给定的字符 st2,返回该字符在 stl 中最先出现 instr(4,ch,”a”)6的位置,n 的缺省值为 1,若没有找 instr(ch,”r”) 0 到 5t2,则函数的返回值为 0string(n,st)得到由 n 个给定字符 st 组成的一个 string(6,#) 字符串“#”space(n)得到 n 个空格“a”space(3)”b” ”a b”表 38 转换函数函数名示例str(x)功能表 达 式将数值数据
25、x 转换成字符串(含符号位) str(1024) 将 x 转换成字符串型,若 x 为数值型,结果“1024”cstr(x)则转为数字字符串 ( 对于正数符号位不cstr(1024)“1024”予保留)val(x)chr(x)asc(x)cint(x)fix(x)int(x)将字符串 x 中的数字转换成数值 返回以 x 为 ascii 代码值的字符 给出字符 x 的 a5c1i 代码值(十进制数) 将数值型数据 x 的小数部分四舍五入取 整将数值型数据 x 的小数部分舍去 取小于等于 x 的最大整数val(“1024”)chr(65)asc(“a”)cint(16.8)cint(-16.8)fi
26、x(-16.8)int(16.8)int(-16.8)1024”a”6517-17-1616-17表 39 日期函数函数名功能date $time $nowyear(xmonth(x)day(x)返回系统当前的日期返回系统当前的时间返回系统当前的日期和时间返回一个表示 x 的年号的整数,x 为一有效的日期变量、常量或字符表 达式返回一个表示 x 的月份的整数x 为一有效的日期变量、常量或字符表 达式返回 131 之间的整型数x 为一有效的日期变量、常量或字符表达式 返回 x 是星期几,x 为一有效的日期变量、常量或字符表达式,c 是用于weekday(x,c) 指定星期几为一个星期第一天的常数
27、,缺省时表示一周的星期天为第一天表 3-10 其他常用函数函数名格式和功能格式inputbox(prompt,title ,default ,xpos ,ypos ,helpfile,context)inputbox在一对话框中显示提示。等待用户输入正文或按下按钮,msgboxformatisnumericloadpicturergb7赋值语句功能格式功能格式功能格式功能格式功能格式功能并返回包含文本框内容的字符串msgbox(prompt,buttons ,title ,helpfile,context ) 在对话框中显示消息,等待用户单击按钮,并返回一个整数 告诉用户单击哪一按钮forma
28、t(expression , format , fristdayofweek , firstweekofyear)返回 variant(sting),根据格式表达式 format 中的指令来格式 化isnumeric(expression)返回 boolean 值指出表达式的运算结果是否为数字。如果 为数字,则 isnumeric 返回 true;否则返回 false:若是日期 表达式,则 isnumeric 返回 falseloadpicture(filename,size 2,colordepth,x,y)将图形载入到窗体、picnrebox 控件或 image 控件的 picture 属
29、性rgb(red,green,blue)返回一个 long 整数,用来表示一个 rgb 颜色值赋值语句的作用就是在程序中改变对象的属性或变量的值,如果一个赋值语句左边变量的 类型与右边表达式的类型不同,系统将视具体情况作出如下处理,如表 312 所示,表中出 现的变量定义为:x as integer,y as double,st as string,flag as boolean .表 312 不同类型的数据处理右边表达左边变式类型量类型系 统 处 理示例数值型字符型数值型字符型逻辑型数值型逻辑型先求出表达式的值,再将其转换为相应数值类型后赋值 y256:xy,结果:x3 先求出表达式的值,再
30、将其转换 x 100 : y 3.5 : st x 十 y , 结果:”103.5”为字符型后赋值x 100 : y 3 5 : st x y , 结 果:”1003.5”若为非 0 值,返回 true;若为 0x100:flagx,结果:true值,返回 false由数字构成的字符串可以转换 x”12”+34,结果:x1234 为数值,否则将出现“类型不匹 x12 十34,结果:x46配”错误信息st”12+34”:xst,结果:出错信 息true”转换为 true,”false”转换为st”rdse”:flagst,结果:falsefalse,数字串转换为数值型再转 5t”1234”:fl
31、agst,结果:true逻辑型换为逻辑型,否则将出现“类型 st”12+ 34 ”:flagst,结果:出 不匹配”错误信息 错信息其他类型 false 转换为 0,true 转换为-1 st”123”: f1agtruexflag 十 st,结果:x122第 4 章算法基础及 visual basic 的基本语句知识点概括1。算法算法是解决某个问题或者处理某件事情的方法和步骤。在程序设计中,算法专指用计 算机解决某一个问题的方法和步骤。2算法分类算法分数值计算算法和非数值计算算法。3评价算法的依据评价算法的优劣主要是看算法的正确性、运行的效率以及占用系统资源的多少。 4算法的特征算法具有确定
32、性、可行性、有穷性、输入性以及输出性特征。5算法设计可以采用“逐步求精”来进行算法设计并逐步将程序编写完善。所谓“逐步求精”,是 指对一个复杂问题,不是一步就编成一个可执行的程序,而是分步进行。所谓“抽象程序”,是指程序所描述的解决问题的处理规则,是由那些“做什么”操作 组成的,而不涉及这些操作“怎样做”以及解决问题的对象具有什么结构,不涉及构造的每 个局部细节。逐步求精方法有多种具体做法。例如,流程图方法、基于过程或函数的方法。程序设计的最抽象的三大步骤为:(1) 数据输入;(2) 数据处理;(3) 数据输出。在针对具体问题的时候,对这几步进行细化,根据问题选择使用什么样的控制结构。当 然在
33、具体的问题中,有时候这三大步不能很清晰地区分清楚,可能会出现交叉处理的现象, 这时候就需要根据具体问题来作具体处理了。6基本算法结构(1)顺序结构。系统在执行程序时,按顺序处理每条语句。7、exit 语句程序执行到 exit 语句时,就会直接退出相关的结构,转而去执行该结构后的下一条语句。 常见的形式是与 if 语句结合使用,格式如下:if e then exit 语句格式exit doexit for相关结构 do-loop 循环结构 for-next 循环结构说明跳出循环结构,转而去执行循 环之后的下一行语句exit sub sub 过程 exit function function 过程
34、跳出过程,转而去执行调用语 句之后的下一行语句8、循环嵌套如果在一个循环内完整地包含另一个循环结构,则成为多重循环或循环嵌套。嵌套的层数可 以根据需要而定,嵌套一层称为二重循环,嵌套二层称为三重循环。对于循环的嵌套,要注 意以下事项:(1) 内循环控制变量与外循环控制变量不能同名;(2) 外循环必须完全包含内循环,不能交叉;(3) 不能从循环体外转向循环体内,也不能从外循环转向内循环,反之则可。9.for 循环与 do 循环的差别for 循环中循环控制变量的值的改变已经包含在语句结构中,使用简单方便;do 循环本身并补包含循环控制变量的值的改变,所以必须另外添加语句(如 i=i+1)对循 环控
35、制变量进行控制。练习:1 执行下面程序,当单击窗体时,变量 sum 和 i 的值分别是多少?private sub form_click()dim i as integer, sum as integerx=8.5for i = 0.5 to x step 2.5sum = sum + i * 10next iprint sumprint iend subl 注意 step 为负值的情形l 若循环体内有 i=i+1.5 的语句,则?l 若循环体内有 x=x+1.5 的语句,则?key:200 10120 12200 102.素数问题for i=2 to x-1if x mod i=0 then
36、 exit fornext iif i=x then print “是素数”*for 循环的两个结束条件是判断素数的依据第 5 章 数组一、命名1、 必须符合标识符命名规则2、 在作用域内不能与变量名、过程名、函数名相同 3、 数组名代表整个数组二、定义1、 数组是一组具有相同类型变量的有序集合。2、 数组中的变量使用一段连续的存储单元。3、 数组分固定大小数组、动态数组和控件数组。 4、 数组的定义形式见下表。数 组固格说明定大小数组动态数组控件数组式注意事项格式注意事项方法注意事项public|private|static|dim 数组名(维界定义)as数据类型1、 public 只能在标
37、准模块中定义公用(全局)数组private 用于模块中,定义模块级数组dim 用于模块中,定义模块级数组用于过程中,定义过程级数组static 用于过程中,定义静态数组2、 数组的默认下界是 03、 维的上、下界说明必须是常数表达式,不可以是变量名或含变量的表达式,即使变量的 值已给出也不可以4、 上、下界必须是整数,若不是整数,vb 自动四舍五入取整5、 数组必须先定义后使用(1)定义时不指明大小的数组,语法格式如下:publicprivate | static|dim 数组名()as数据类型(2)在确定了数组所需的大小后,使用 redim 语句来动态地定义数组的大小,分配存储空间,语法格式
38、如下:redimpreserve数组名(维界定义)1、 redim 语句是一个可执行语句,只能出现在过程中。2、 重新定义动态数组时,不能改变数组的数据类型。3、 可以使用变量说明动态数组新的大小4、 如果用 redim 定义的数组不存在,则系统会先创建一个动态数组,再给定大小。5、 若原数组有值,用 redim 后,全部丢失;若要保留,用 preserve。用了 preserve 后,只能改变最后一维的维上界(1) 创建同名控件(1) 复制现存控件1、 同一控件数组内的控件类型是相同的2、 控件数组中所有的控件名称相同;3、 控件数组中所有的控件所对应的事件过程是相同的;4、 控件数组中每个
39、控件的 index 属性用于区别数组的其他控件三、数组结构2 维数组:按列存放3 维数组:按页、列、行存放四、基本操作1、 赋值与输出2、 数组元素的引用五、 数组函数及数组语句表 52 给出了与数组相关的函数和语句的说明第 6 章程序调试知识点概括1vb 的工作状态vb 有三种工作状态,如表 61 所示,在窗口的标题栏上将显示当前的工作状态表 6-1 vb 的工作状态工作状态说明切换状态的方法设计态运行态中断态在设计态时,可以设计程序的交互界面 单击“运行”菜单中的“启动”菜单项 和编写相关的代码单击标渡工具栏中的,按钮程序正在运行的时期,此状态下可查看 单击“运行”菜单中的“结束”菜单项
40、代码但不能改动程序代码单击标准工具栏中的按钮运行时因发生运行错误而暂停程序的执行 运行态下按ctrl+break组合键或单击“运程序在运行的中途被暂停执行的状态。 行”菜单中的“中断”菜单项在中断模式下,可以修改程序代码,检程序执行到断点所在的代码行查、调试、重置、单步执行或继续执行按逐语句或逐过程执行时,每执行完一个语程序2错误类型句或一个过程后切换到设计态:单击标准工具栏中的按钮 切换到运行态:单击标准工具栏中的,按钮在 vb 程序设计中所产生的错误类型有三种,如表 62 所示。表 62 错误类型错误类型说明常见的错误违反 vb 语言有关语句使用形式或使用规 关键字拼写错误语法错误则而产生
41、的错误 标点符号错误3 语句不完整4 对象名称或属性名、方法名、系统函数试图执行一个不可执行的操作而引起的名拼写错误运行错误错误 在通用声明处使用了 0ption explicit 语句,相关变量未定义或变量名拼写错误 if 没有对应的 end if 语句编写的程序代码不能实现预定的处理功能 for 循环没有对应的 next 语句逻辑错误要求而产生的错误 do 循环没有对应的 loop 语句3程序调试程序调试的目的就是找出发生错误的地方,确定导致错误结果的原因,并修改程序直到 正确为止。调试的技巧并不神秘,每次的调试工作也无章可循。程序调试常用的手段就是在程序运行中对各段代码运行后的结果进行检
42、查,以确认错 误发生的位置,因此,我们可以通过控制程序的运行来逐步进行观察。vb 提供的程序调试工具及其相关说明如表 63 所示。表 63 程序调试工具调试工具说明操 作 方 式逐语句逐过程一次执行一个语句,每执行一个语句就进入 按f8键中断模式单击调试工具栏中的按钮一次执行一个语句 c 当遇到过程调用语句 按shift+f8键时,不对过程中的语句逐句执行,而是一次性格过程执行完毕 单击调试工具栏中的按钮 当前执行点在过程中,若要跳出过程,则一 按ctrl+shift+f8组合键从过程中跳出 次性执行完过程中未执行的代码段后,使程序的执行点转到调用过程语句的下一句 单击调试工具栏中的按钮在代码
43、行左端竖栏中单击鼠标程序代码中做了标记的位置,程序在执行设置断点按f8键单击“调试”菜单中的“切换断点” 菜单项断点单击调试工具栏中的按钮到断点所在处将由运行态转换到中断态清除断点1 按ctrl+shift+f9组合键2 单击“调试”菜单中的“清除所有 断点”菜单项4程序调试窗口(1)本地窗口。用于自动显示出所有当前过程中声明的变量及其值。(2)监视窗口。用于查看指定表达式的值。(3)立即窗口。当调试一个应用程序时,可以用“立即”窗口执行单个的过程、对表达式求值、为变量 或属性赋予新的值,并可以通过在“立即”窗口中显示表达式的值来计算表达式。使用 print 语句,可在“立即”窗口中显示表达式
44、的值。如果在程序执行时希望把值显 示到“立即”窗口中,可以使用如下格式的 print 语句:debug.print p1sp2s或?p1sp2s第 7 章 过程知识点概括1过程的定义程序的基本单位是过程,vb 中常用的过程分为子程序 (sub)过程和函数(function)过程, sub 过程没有返回值,而 function 过程有返回值,定义过程的语法规则如表 71 所示。表 7-1 过程的定义(a)sub 过程的定义事件过程窗体事件过程private sub form_事件名(参数列表) 局部变量和常量声明语句块控件事件过程private sub 控件名_事件名(参数列表) 局部变量和常量
45、声明语句块通用过程end sub end sub pivate|publicstaticsub 过程名(参数列表)局部变量和常量声明语句块exit subend subb)function 过程的定义private |publicstaticfunction 函数名(参数列表)as 数据类型 局部变量和常量声明定义形式语句块函数名表达式 exit function语句块函数名表达式 end function2过程的调用调用过程可以通过以下两种方式进行,如表 72表 72 过程的调用sub 过程function 过程方法一方法二call(实参表)实参 1,实参 2,(实参表) (实参表)3形参和
46、实参形参给出传递到过程(函数)中的值在过程(函数)中的表现形式,实参是在调用 sub 或function 过程时,传送给相应过程的形参的形式,具体区别如表 73 所示。 表 73 形参与实参形参实参定义 sub 或 function 时,出现在形参表中的变量 在调用 sub 或 function 过程时,传送给相概念格式名、数组名byval|byref变量名( )as 数据类型:应过程的变量名、数组名、常数或表达式4参数的传递调用过程时,采用“形实结合”的方式传递参数,参数的传递有两种方式:按值传递和按 地址传递。在传递参数时要求“形实对应”,即要求形参和实参数据类型相互兼容,其特点 如表 7
47、4 所示。表 74 参数传递的特点按值传递形参前加关键字“byval”按地址传递形参前加关键字“byref,或省略关键字特点数组参过程调用时,vb 给按值传递的形参分配一 形参和实参共用内存的同一“地址” 个临时存储单元按值传递参数,传递的只是实参变量的副本 若实参是变量、数组元素或数组,则形参和实参类型必须一致,否则会出错过程中改变形参值,将同时改变形参和实参过程中改变形参值,只影响副本中的值若实参为一个常量或者表达式,vb 将按传 值方式处理若实参是与形参类型不一致的常数或表达 式,vb 会按要求进行数据转换,再将转换后 的值传递给形参对于简单变量 m,加括号即(m)则变为表达 式,vb 将按传值方式处理形参数组只能是按地址传递的参数(即数组前不能用“byval”,且数组名后只能是一对空 括号),对应实参也必须是数组,且数据类型必须一致调用过程时把要传递的数组名放在实参列表中即可,数组名后可不跟括号数过程中不可以对形参数组再进行声明,但在使用动态数组时,可以用 redim 语句改变形参 数组的维界,重新定义数组的大小5递归过程递归过程是在过程定义中直接或间接调用自身来完成某一特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新车订车定金合同范本
- 南海区与粤海集团签署战略合作框架协议
- 维修协议书集合
- 2024版钢筋原材料质量检测合同
- 基于人工智能的视频监控系统开发合同(04版)
- 合同成立的要素2篇
- 挖掘机合伙经营协议书3篇
- 《长广溪水质处理》课件
- 急性阑尾炎课件简单
- 美容化妆品供货商2024年度协议
- 振动台常用公式
- 变压器拆除与安装施工方案
- 小学生趣味脑筋急转弯(课堂PPT)
- 我最喜爱的一本书《 秘密花园》(课堂PPT)
- 644温度变送器选型手册2012中文版
- 在校学生证明(参考模板)
- 西门子S7-1200通过TO实现IS620F的位置控制
- 高中信息技术《走近人工智能》优质课教学设计、教案
- 难免压疮及压疮申报表格模板
- 新教科版五年级上册科学 第三单元第1课《时间在流逝》教案
- 现代科学技术对艺术的影响论文
评论
0/150
提交评论