1.1k likes | 1.31k Views
VB 基础. 主要内容. VB 概述 Visual Basic 语言基础 Visual Basic 程序设计. VB 概述. VB 简介 VB 特点 安装 VB 6.0 VB 6.0 的集成开发环境 联机帮助的使用 一个简单的例子. VB 简介. Visual Basic 的缩写,常用版本 Visual Basic6.0 MICROSOFT 公司研制的 WINDOWS 环境下的应用程序开发工具,是基于 WINDOWS 的开发语言。有三个关键概念:窗口、事件和消息。编程者只需自行处理事件过程。
E N D
主要内容 • VB概述 • Visual Basic语言基础 • Visual Basic程序设计
VB概述 • VB简介 • VB特点 • 安装VB 6.0 • VB 6.0的集成开发环境 • 联机帮助的使用 • 一个简单的例子
VB简介 • Visual Basic的缩写,常用版本Visual Basic6.0 • MICROSOFT公司研制的WINDOWS环境下的应用程序开发工具,是基于WINDOWS的开发语言。有三个关键概念:窗口、事件和消息。编程者只需自行处理事件过程。 • 是MICROSOFT开发工具系列VISUAL STUDIO中的一员。 • 选择Visual Basic做为开发工具的理由。
VB特点 • 可视化 开发应用程序主要有两部分工作:设计界面和编写代码 • 事件驱动 事件可由用户操作触发,也可由来自操作系统或其他应用程序的消息触发,甚至由应用程序本身的消息触发。 • 交互式 交互式方法开发应用程序,使编码、编译和测试3个步骤之间不再有明显的界限。它在编程者输入代码时便进行解释,实时捕获错误,并部分地编译代码。程序完成后只需极短的时间就可完成编译,如发现错误,将错误突出显示于代码中,无需从头开始。 使用交互式方法开发应用程序,代码运行的效果可在开发时进行测试,而不必等到编译完成以后。
安装VB 6.0 • Visual Basic6.0的安装简单明了。 • 若对默认安装想添加或删除其部件,可在安装对话框中选取“自定义”按钮,然后在“自定义”对话框的“选项”列表框中选定要安装的部件(或撤销选定要删除的部件)。
VB 6.0的集成开发环境(IDE) • 见下图
联机帮助的使用 • Visual Basic 6.0的联机帮助文件系统与它自身是分开的,所有的Visual Studio 6.0的联机帮助都属于“MSDN”系统, “MSDN”系统需安装。 • 执行【开始】/【程序】/【Microsoft Developer Network 】/【 MSDN Library Visual Studio 6.0(CHS)】命令,就可启动MSDN。 • 查看Visual Basic 6.0的联机帮助时,最好先在【目录】中选择【 Visual Basic 文档】。
一个简单的例子 • 见例1:显示
Visual Basic语言基础 • Visual Basic 6.0应用程序的结构 • Visual Basic的命名约定 • 数据类型 • 变量 • 常量 • 运算符 • 表达式 • 基本语句 • 数组
Visual Basic 6.0应用程序的结构 • 过程 • 在Visual Basic 中,为了简化程序设计,可将程序分割成较小的逻辑部件,这些部件就称为“过程”。 • 过程可将程序划分成离散的逻辑单元,调试容易,还可容易成为另一个程序的构件。
Visual Basic 6.0应用程序的结构 • 在Visual Basic 中有三种过程 • 不返回值的Sub过程 • 返回值的Function过程 • 设置对象引用的Property过程
Visual Basic 6.0应用程序的结构 • 模块 • 在Visual Basic 中,存储程序代码的载体称为模块。 • 在存储结构中,每类模块都会对应一类文件。 • 模块有三种类型:窗体、标准和类。 • 每个模块都可包含声明和过程。
窗体模块 • 将窗体的可视部分及与窗体有关的Visual Basic 代码的有机集合称为窗体模块或窗体文件,其扩展名为“.frm”,包括了窗体及其控件的属性,处理事件的过程(如一个命令按钮的单击事件过Command1_Click),通用过程(如一个Function过程)以及变量、常数、类型和外部过程的窗体级声明等。
标准模块 • 那些与特定窗体或控件无关的只含有Visual Basic的代码存放在标准代码模块中(文件扩展名为.BAS)。 • 当一个过程可以用来响应几个不同对象中的事件时,就将该过程放在标准模块中。 • 可减少编程工作量,提高程序的可读性和可维性。 • 标准代码模块中可包含变量、常量、类型、外部过程和全局过程的全局声明或模块级声明。
类模块 • 类模块是用来创建对象的样板(文件扩展名为.CLS)。 • 类模块包含所创建对象的状态描述和方法定义,对象只是类的一个实例,这些对象可被应用程序内的过程调用。 • 在Visual Basic中,类模块是面向对象编程的基础。程序员可在类模块中编写代码,建立新对象,这些新对象可以包含自定义的属性和方法。 • 类模块与窗体模块类似,只是没有可见的用户面。
应用程序的工作方式—事件驱动 • 事件是窗体或控件识别的动作。在响应事件时,事件驱动应用程序执行VB代码。 • VB的每个窗体和控件都有一个预定义的事件集。如其中一个事件发生,而且在关联的事件过程中存在代码,则VB调用该代码。 • 尽管VB中对象自动识别预定义的事件集,但要判定它们是否响应具体事件及如何响应,则必须编程实现,即把代码写入该事件的事件过程中。 • 对象所识别的事件多种多样,但多数类型为大多数控件所共有。如:大多数对象都能识别Click事件。如单击窗体,则执行窗体的单击事件过程中的代码;如单击命令按钮,则执行命令按钮的ClicK事件过程中的代码;每种情况中的实际代码几乎完全不同。
Visual Basic的命名约定 • 在编写Visual Basic代码时,要声明和命名许多元素(Sub和Fuction过程、变量、常数等等)。 • 在Visual Basic代码中声明的过程、变量和常数的名字,必须遵循这些规则: (1)标识符必须以字母开头 (2)变量名中只能有字母、数字和下划线,不能包含 标点符号,$号仅可做为最后一个字符。 (3)长度不超过255个字符 (4)不能与关键字相同 如: Dim Sun As Integer ‘Sun为变量标识符
Visual Basic的命名约定 • vb中的关键字 关键字:保留下来的作为程序中固有含义的标示符,不能被重新定义。 • 在写程序时,切记不能将变量名命名为与关键字相同,例如:True False Date等。
数据类型 返回
数据类型 • Date数据类型,日期文字以数字符号(#)括起来,如:#January 1, 1993#或#1 Jan 93#,但Visual Basic不能识别如#1999年8月1日#的字符。 Dim Var As Date Var = #12/20/1999 7:30:00#
数据类型 • Boolean数据类型,只有True和False两态数值,缺省值False。如:在下面例子中,blnRunning是Boolean变量,来描述磁带是否在运转。 Dim blnRunning As Boolean ‘查看磁带是否在转 If Recorder.Direction=1 Then blnRunning=True else blnRunning=False end if
数据类型 • Variant数据类型是能够存储所有系统定义类型的数据。如变量是Variant数据类型,则Visual Basic会自动完成数据类型间的转换。如果在声明变量时不加类型说明,则编译系统会自动认为是Variant数据类型。如: Dim OneValue ‘声明变量,缺省为Variant数据类型 OneValue=“99” OneValue= OneValue-90‘OneValue= 9 OneValue=“U” & OneValue ‘OneValue= “U9”
数据类型 • Empty值 在赋值之前, Variant变量的值为Empty,它是异于0“”或Null值的特定值,可用IsEmpty函数来测试。 If IsEmpty (Z) Then Z = 0 '如果没有赋值.赋给0值 • Null值 通常用于数据库应用程序,表示未知数据或丢失数据,也可用IsNull函数来测试。
数据类型 If IsNull (X) And IsNull (Y) Then Z = Null Else Z = 0 End If
常量 • 在程序执行的过程中保持不变的数据称为常量,在VB中,常量有两种,直接常量和名称常量。名称常量又分为用户自定义和系统两种。
直接常量 • 直接常量的表示形式决定它的类型和值。例如: • 字符型:"I am a student"放在一对引号当中。 • 数值型:3.14159、56、8.432E-15 • 日期型:#3 jan,98# 放在一对#当中。 • 逻辑型:True 、False
用户声明常量 • 定义用户声明常量的方法如下: 格式:const 常量名 [as类型]=表达式 • [as类型]用以说明常量的数据类型 • 省略 [AS 类型] ,常量的类型由表达式值的类型决定。 例 Const MAX=100 Const pi=3.1415926 Const CityName As String=“青岛市”
系统名称常量 • 系统定义常量位于对象库中,可使用“对象浏览器”查看。在VB工具栏中单击 “对象浏览器”按钮或按F2键,将会弹出【对象浏览器】对话框,然后输入要查找的常量名称。 例:vbNormal 、 vbMinimized、vbRed
变量 • 在程序执行过程中,其值可以改变的量称为变量。 • 使用变量前,应首先定义所用到的变量(包括变量名和类型),使系统分配相应的内存空间,并确定该空间可存储的数据类型。所有变量都具有名字和类型。 • 变量名必须遵循Visual Basic的命名约定。如:
变量 • 在VB中对变量的声明有两种方式:即显式声明和隐式声明。 • 显式声明 Dim 变量名 [AS 类型] 例: Dim iCount As integer, sAllsum As single 等价于 Dim iCount%, sAllsum! • 隐式声明 未进行上述的声明而直接使用,其类型为 Variant 类型,建议不使用。例: Private Sub Form_Load() NewVar = 222 End Sub
变量 • 在一个范围(范围可能是一个过程或一个模块)内,不得对同一个变量进行多次相同或不同的声明。例: Private Sub Form_Load() NewVar = 222 Dim NewVar As Integer End Sub 以上程序会导致编译错误. • 在Visual Basic中,不允许在声明变量的同时赋给该变量一个具体的数据值,系统将自动赋给一个固定的相应的初始值.
变量的作用范围 • 在Visual Basic 6.0中,从变量的作用范围来分,可分为局部变量和全局变量。 • 从代码的结构上可大致划分为模块级代码和过程级代码。 • Visual Basic 6.0中的所有代码都放在模块中。在模块编写代码时必须先声明,然后列出过程。过程外的任何代码都是模块级代码。 • 过程级代码是模块中描述Function\Property或Sub过程中的代码。在过程级代码中,通常是先列举声明,其次是赋值和其他可执行的代码。
变量的作用范围 • 局部(Private)变量 • 局部(Private)变量只能在包含其声明的范围中使用。声明格式如下: Private Varname [As DataType] 如: Private theName As String Private Sub Command1_Click() Private theName As Integer theName=1234 End Sub Private Sub Command2_Click() theName=”模块变量” End Sub
变量的作用范围 • 全局变量 • 一个应用程序可由一个或多个模块组成,若希望在一个模块中声明的变量在其他模块中也能被访问,则必须将该变量声明为全局变量(Public, 又称公用变量)。声明全局变量的格式如下: Public VarName [As DataType] • 全局变量既可在其所定义的模块中的过程被访问,又可在其他模块中的过程也同样可以访问它。访问格式如下: ModuleName.VarName 如:要在模块Form1中将Form2模块中的全局 变量Myname赋给变量theName时,可如下描述: theName = Form2.Myname • 在Visual Basic 6.0中有一个限制:“名称常量、定长的字符串变量、数组、用户自定义类型不能作为对象模块中的Public成员”。
变量的作用范围 • 静态变量 • 在过程中用Private声明的变量会随着过程的结束而释放,当下次调用过程时,变量的数据值会重新初始化。如果要使变量的数据在下次调用过程时能够保存,必须使用静态变量。声明静态变量的格式如下: • Static VarName [As DataType] • 静态变量在模块的代码开始运行后,会一直保持其值,直至该模块复位或重新启动。如:
变量的作用范围 Private Sub Command1_Click() Static ClickCounter As Integer Private ClickCounterStr As String ClickCounter = ClickCounter + 1 ClickCounterStr = ClickCounter MsgBox(“点击次数:”+ ClickCounterStr ) End Sub 考虑:如将上述过程中的静态声明变成局部声明,那运行的结果是什么?
变量的作用范围 • 总结:类型说明语句 • 格式:说明符 变量名 [As 类型] • 说明符是说明语句的关键字,它可以是Dim,Private,Public,Static。
运算符—字符串运算符 • 字符串只有连接运算,在VB中可以用“+”或“&”。建议尽量使用“&”,使程序看起来更明了。使用“&”运算符时应注意前后加空格,否则VB会当作长整数型的类型符来处理。 • 注意“+”和“&”的区别。当两个被连接的数据都是字符型时,它们的作用相同。当数字型和字符型连接时,“&”把数据都转化成字符型然后连接;“+”把数据都转化成数字型然后连接。例如: “ABC”+“DEF”‘其值为"ABCDEF"。 “姓名:”& “张三”‘其值为:"姓名:张三"。 23 & “7”‘其值为: "237"。 23+“7”‘其值为:30。 23+“7abc”‘则会出现类型不匹配的错误。 “123 ” + True ‘结果为 122 True转换为数值-1,False ‘转换为数值0
运算符—关系运算符 • 关系运算符用作两个数值或字符串的比较,返回值是逻辑值True或False。 • 下表列出了VB中的关系运算符及使用示例:
运算符—关系运算符 • Like比较运算符的模式匹配规则
运算符—逻辑运算符 • 逻辑运算符对逻辑量进行逻辑运算,除Not外都是对两个逻辑量运算。结果为逻辑值。
运算符的优先级 • 在表达式中,当运算符不止一种时,运算顺序是:算术运算符、比较运算符、逻辑运算符。所有比较运算符的优先级都相同,而其他两类运算符的优先级有高低之分,优先级相同的运算符处理顺序是从左到右进行处理。
表达式 • 表达式由常量、变量、函数、运算符以及圆括号,按照一定的规则组成,不管表达式的形式如何,都会计算出一个结果,该结果的类型由参与运算的数据和运算符决定。
关系表达式和逻辑表达式 • 当使用关系运算符或逻辑运算符时,表达式又称为关系表达式或逻辑表达式。 • 关系运算一般表示一个简单的条件。 例如:age>20 、score>80、x+y>z等。 • 逻辑表达式表示较复杂的条件。 例如:数学中的0<x<5,写成VB表达式应为0<x And x<5。
Visual Basic 6.0代码编写机制 • Visual Basic 6.0的每行语句格式: [行号 | 标签号 ]语句 • 行号和标签号可省略 • 行号用来识别一行代码,可以是任何数值的组合,在使用行号的模块内,该组合是唯一的,必须从第一列开始。 • 行标签号用来指示一行代码,可以是任何字符的组合,以字母开头,以冒号(:)结尾,与大小写无关,必须从第一列开始。 • 将单行语句分成多行 • 可在“代码”窗口中用续行符(一个空格后面跟一个下划线)将长语句分成多行。如: VarStr= _ “周公恐惧流言日,”& _ “王莽礼贤下士时。”& _ “当时若是身便死,”& _ “千古忠奸有谁知?” ,