程序设计第四章课件_第1页
程序设计第四章课件_第2页
程序设计第四章课件_第3页
程序设计第四章课件_第4页
程序设计第四章课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4讲 VB高级语言技巧,教学要求,1掌握数组的使用方法; 2、掌握键盘、鼠标的使用技巧; 3、掌握过程和函数的定义和调用方法; 4、掌握API函数的调用方法; 5、了解枚举及自定义数据类型; 6、了解多功能计算器程序设计过程。,4.1 多功能计算器程序任务,4.1.1 任务概述 1、对程序功能进行扩展,将计算结果转换成十六进制。 2、在编写数字区按钮事件时,工作量过于重复,10个按钮要编写10个Click事件处理程序。可采用合并同类项的方法,以减少代码设计的工作量。 3、文本框禁止用户输入文本。,4.2 数组的使用,4.2.1 数组 1、概念 一组具有同一名字、不同下标的变量称为数组,实际上是一组相同类型的变量的集合。数组可分为一维数组、二维数组、三维数组。 2、声明静态数组 (1)方法1 Dim 数组名(上界) As 数据类型 默认情况下数组的下界从0开始,因此数组元素的个数等于上界加1。全部元素初始化为0或空。 例:Dim A( 5) As Integer,4.2 数组的使用,4.2.1 数组 2、声明静态数组 (1)方法2 Dim 数组名(下界 to 上界) As 数据类型 可根据需要设置下标的起始值和结束值。 Dim A(1 to 5,1 to 5) As Integer Dim A(5, 5) As Integer,4.2 数组的使用,4.2.1 数组 3、动态数组 事先不能确定元素个数,可采用动态数组声明。 (1)首先声明一个静态数组,不指定大小 Dim A() As Integer (2)在程序执行过程中,使用ReDim语句修改数组大小或上下界 ReDim A(20) As Integer ReDim A(1 To 20) As Integer,4.2 数组的使用,4.2.2 控件数组 特殊数组,数据类型为控件类型,每个数组元素都是一个空间对象,共用一个相同的控件名字,所有元素的Name属性均相同,各控件的Index属性表示数组下标。 一般情况下,当一个应用程序中存在多个相同的控件,并且它们对某种事件的处理方法类似时,可采用控件数组,达到共享代码的目的。,4.2 数组的使用,4.2.3 枚举及自定义数据类型 1、枚举 当某个变量只可能取几个固定的值时,就可将其定义为枚举类型。定义枚举类型需要用Enum关键字声明。 Public Enum enmDay 星期日=1 星期一=2 星期二=3 星期三=4星期四=5 星期五=6 星期六=7 End Enum,4.2 数组的使用,4.2.3 枚举及自定义数据类型 1、枚举 enmDay本身并不是变量,只是一种用户定义的新的数据类型。定义后就可以像VB提供的标准数据类型一样使用。 Dim MyDay As enmDay MyDay=星期日 (1)枚举类型中的元素只能表示长整型常数 (2)枚举类型应在模块级别中定义 (3)没有赋值时,系统自动为第一个赋值0,后面的成员值依次加1。,4.2 数组的使用,4.2.3 枚举及自定义数据类型 2、自定义类型 一种构造型数据,常称为记录类型。 (1)定义 Public Type Student 学号 As String*10 姓名 As String*10 年龄 As Integer 籍贯 As String End Type (2)声明变量 Dim x As Student (3)使用 x.学号=“200101” x.姓名=“张红”,4.3 过程和函数的定义和调用,在VB中,将SubEnd Sub定义的子程序称为Sub过程(子过程),将FunctionEnd Function定义的函数称为Function过程(函数过程)。 4.3.1 编写自定义过程的必要性 函数过程是一种代码分块技术,可将程序划分为模块: (1)过程规模小,容易调用和维护 (2)过程可被反复调用,避免重复代码,加强可重用性。 (3)程序结构简洁,便于阅读和维护,4.3 过程和函数的定义和调用,4.3.2 Sub过程 1、定义 一般在窗体代码编辑器的通用部分定义私有的Sub过程,定义后可在窗体的所有地方调用。如果希望定义整个应用程序均可使用的公用过程, 则最好在标准模块定义。,4.3 过程和函数的定义和调用,4.3.3 参数传递过程 1、引用传递参数 将参数变量的内存地址传递给Sub或Function过程,过程通过内存地址访问实际参数的内容。 Private Sub Change(x As Integer,y As Integer) Dim t as Integer t=x x=y y=t Print “x=”;x,“y=”;y End Sub,4.3 过程和函数的定义和调用,4.3.3 参数传递过程 Private Sub Form_Click() Dim a As Integer Dim b As Integer a=3 b=4 change a,b Print “a=”;a,“b=”;b End Sub,4.3 过程和函数的定义和调用,4.3.3 参数传递过程 2、按值传递 只把实际参数的数值传递给过程,传递的只是参数的副本。 Private Sub Change(ByVal x As Integer, ByVal y As Integer),4.4 鼠标和键盘使用技巧,4.4.1 响应键盘事件 常用的键盘事件主要有KeyPress、KeyUp、KeyDown事件,触发的原因为: KeyPress:用户按下了某ASCII字符的键 KeyUp和KeyDown:按下或释放键盘上的任意键均会触发。 1、焦点处理 窗体或控件的焦点是对象活动的标志,一个窗体中只有具有焦点的控件才能接受键盘事件。,4.4 鼠标和键盘使用技巧,4.4.1 响应键盘事件 设置焦点的方法有:一是在程序运行阶段通过鼠标选择或控件的SetFocus方法实现。另一种是在程序设计阶段预先设置控件的TabIndex属性,在运行时通过按Tab键实现焦点的移动。 (1)SetFocus方法 标准控件一般有一个SetFocus方法。程序设计时设置焦点可使用以下代码: 控件名.SetFocus,4.4 鼠标和键盘使用技巧,4.4.1 响应键盘事件 (2)利用Tab键控制 所有可被设置焦点的控件均有一个TabIndex属性。默认在窗体上创建的第一个控件的TabIndex值为0,第二个控件的TabIndex值为1,依次类推。 (3)窗体的键盘事件 如果希望按下任何键窗体都会执行同一操作,可使用窗体的键盘事件。,4.4 鼠标和键盘使用技巧,4.4.1 响应键盘事件 2、KeyDown和KeyUp事件分析 (1)KeyCode参数 计算机键盘上每个键均有一个编码称为键码。可使用数字也可使用VB的键码常数进行判断处理。 If KeyCode=vbKeyBack then 是否按下BackSpace If KeyCode=vbKeyDelete then 是否按下Delete (2)Shift参数 判断是否按下了Shift、Ctrl、Alt键,4.4 鼠标和键盘使用技巧,4.4.1 响应键盘事件 If Shift=vbShiftMask then 是否按下Shift If Shift=vbCtrlMask then 是否按下Ctrl If Shift=vbAltMask then 是否按下Alt If (Shift=vbCtrlMask) And (KeyCode=vbKeyA) then 是否按下了Ctrl+A组合键,3、KeyPress事件 发生于KeyDown和KeyUp之间,只有一个KeyAscii参数,返回用户通过键盘输入的字符的ASCII码。当需要处理标准ASCII字符时可使用,但要处理扩展字符键、组合键和定位键时,只能使用KeyDown和KeyUp事件。 常用键盘码与ASCII码的对用关系见P113表4.1,4.4 鼠标和键盘使用技巧,4、SendKeys过程 利用SendKeys可将一个或多个按键消息发送到活动窗口。 例:为加快输入速度,用户每按下回车键后,控件焦点自动移动到下一个,可在文本框控件中加入以下代码: Private Sub Text_KeyPress(Index as Integer,KeyAscii As Integer) If KeyAscii=13 then sendKeys “Tab” End If End Sub,4.4 鼠标和键盘使用技巧,4.4.2 响应鼠标事件,1、改变鼠标形状 VB提供15种鼠标形状,同时支持用户自定义功能。通过设置窗体的MousePointer属性可以设置。 2、使用自定义鼠标形状 将MousePointer属性设置为99,就可以使用自定义鼠标形状。通过设置MouseIcon属性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论