1.1 Visual Basic 概述
1.Visual Basic是什么 Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言。 “Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的语言。Visual Basic 在原有 BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集,可嵌入HTML语言中,用于网页设计,如ASP(Active Server Page)文件。 VB简单易学,通用性强,用途广泛。
2. VB的功能 VB可以用于可以开发多媒体、数据库、网络、图形等方面的应用程序。 ¨ 数据访问特性允许对包括 Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。 ¨ 有了 ActiveX(TM) 技术就可使用其它应用程序提供的功能,例如 Microsoft Word 字处理器,Microsoft Excel 电子数据表及其它 Windows 应用程序。 ¨ Internet 能力强大,很容易在应用程序内通过 Internet 或 intranet访问文档和应用程序,或者创建 Internet 服务器应用程序。 ¨ 已完成的应用程序是使用Visual Basic 虚拟机真正 .exe 文件,可以自由发布。
3. VB的发展 VB是伴随Windows操作系统而发展的,在中国使用较广的版本有VB4.0、VB5.0、VB6.0。 VB4.0是为配合WIN95的问世于1995年推出的,既可用于编写WIN3.X平台的16位应用程序也可编写WIN95平台的32位应用程序;VB5.0主要用于编写WIN95平台的32位应用程序,较之VB4.0主要扩展了数据库、ActiveX和Internet方面的功能;VB6.0是与WIN98配合于1998年推出的,进一步加强了数据库、Internet和创建控件方面的功能。
4. VB中几个常用术语 工程(Project): 是指用于创建一个应用程序的文件的集合。 对象(Object): 可控制的某个东西,VB中主要有两类对象:窗体和控件。 窗体(Form): 应用程序的用户界面,即windows。 控件(Control): 指的是各种按钮、标签、文本框等。 属性(Property):是指对象的特征,如大小、标题或颜色。 ActiveX :ActiveX 是基于 Component Object Model (COM) 的可视化控件结构的商标名称。它是一种封装技术,提供封装 COM 组件并将其置入应用程序(如Web 浏览器)的一种方法。 Components Object Model (COM): 是软件组件互相通讯的一种方式。它是一种二进制和网络标准,允许任意两个组件互相通讯,而不管它们是在什么计算机上运行(只要计算机是相连的),不管各计算机运行的是什么操作系统(只要该操作系统支持 COM),也不管该组件是用什么语言编写的。
5. VB的系统特性 (1)工程限制 1)代码限制: 可被加载到窗体、类或标准模块的代码总数限于 65,534 行。一行代码限于 1023 个字节。在一行中的实际文本之前最多只能有 256 个空格的前导,在一个逻辑行中最多只能有 25 个续行符 ( _)。 2)过程、类型和变量 对每个模块的过程数没有限制。每个过程可包含至多 64K 的代码。如果过程或模块超过这一限制,Visual Basic 便产生编译时间错误。如果遇到这种错误,可将特别大的过程分割成若干个较小的过程,或将模块级声明移到另一模块,来避免此类错误发生。 Visual Basic 用表来保存代码中的标识符名(变量、过程、常量等)。每个表限于 64K。 3)动态链接库声明表 每个窗体和代码模块使用一个描述动态链接库入口点的结构的表。每个结构约 40 个字节,表的大小限于 64K,形成每个模块大约有 1500 个声明。 4)工程名表 整个应用程序用一张包含所有名称的表。这些名称包括: 常量名 、 变量名 、 自定义的类型定义名、 模块名、 DLL 过程声明名。 对工程名表总大小没有限制,但是区分大小写的条目不得超过 32K。如果超过了 32K 的限制,可以在不同的模块中重新使用 private 标识符以限制区分大小写的条目数到达 32K。 5)输入表 在不同的模块中每引用一个标识符,便在输入表中创建一个条目。每一个这样的入口最小是 24 字节,但限于 64K,这样每个模块大约可以有 2000 个引用。 6)模块条目表 该表中每个模块最多达 125 个字节,但有 64K 的总限制,这样每个工程大约可以产生 400 个模块。 VB 中的变量名不多于 255 个字符,而窗体、控件、模块和类名不多于 40 个字符。
(2)工程文件格式
VB 在创建和编译工程时要产生许多文件,分为:设计时文件、杂项开发文件和运行时文件。
设计时文件是工程的建造块,例如基本模块 (.bas) 和窗体模块 (.frm)。
杂项文件是由 Visual Basic 开发环境中的各种不同的进程和函数产生的,例如打包和展开向导从属文件 (.dep)。
开发应用程序时会产生各种设计时文件和其它杂项文件,如下表所列:
扩展名 |
描述 |
扩展名 |
描述 |
.bas |
基本模块 |
.frm |
窗体文件 |
.cls |
类模块 |
.frx |
二进制窗体文件 |
.res |
资源文件 |
.vbp |
Visual Basic 工程文件 |
.ctx |
用户控件的二进制文件 |
.pgx |
二进制属性页文件 |
.dca |
活动的设计器的高速缓存 |
.ctl |
用户控件文件 |
.ddf |
打包和展开向导 CAB 信息文件 |
.tlb |
远程自动化类型库文件 |
.dep |
打包和展开向导从属文件 |
.vbg |
Visual Basic 组工程文件 |
.dob |
ActiveX 文档窗体文件 |
.vbl |
控件许可文件 |
.dox |
ActiveX 文档二进制窗体文件 |
.dws |
部署向导脚本文件 |
.dsr |
活动的设计器文件 |
.vbr |
远程自动化注册文件 |
.dsx |
活动的设计器的二进制文件 |
.vbw |
Visual Basic 工程工作空间文件 |
.log |
加载错误的日志文件 |
.vbz |
向导发射文件 |
.oca |
控件类型库缓存文件 |
.wct |
WebClass HTML 模板 |
.pag |
属性页文件 |
|
|
编译应用程序时,所有必须的设计时文件都被包括在运行时可执行文件中。运行时文件如下表所列:
扩展名 |
描述 |
.dll |
运行中的 ActiveX 部件 |
.exe |
可执行文件或 ActiveX 部件 |
.ocx |
ActiveX 控件 |
.vbd |
ActiveX 文档状态文件 |
.wct |
WebClass HTML 模板 |
1.2 VB 6.0 的集成开发环境简介
VB 集成开发环境 (IDE——Integrated Developing Environment ) 由以下元素组成:
1. 标题栏
用于显示正在开发或调试的工程名和系统的工作状态(设计态、运行态、中止态)。
2. 菜单栏
用于显示所使用的 Visual Basic 命令。VB6.0标准菜单包括:
3. 工具栏
在编程环境下用于快速访问常用命令。缺省情况下,启动 VB后显示“标准”工具栏,附加的编辑、窗体设计和调试的工具 栏可以从“视图”菜单上的“工具栏”命令中移进或移出。
4. 窗体设计器
用来设计应用程序的界面。启动VB后,窗体设计器中自动出现一个名为Form1的空白窗体,可以在该窗体中添加控件、图形和图片等来创建所希望的外观,窗体的外观设计好后,从菜单中选择“文件”→“保存窗体”→在保存对话框中给出合适的文件名(注意扩展名),并选择所需的保存位置→确定。需要再设计另一个窗体时,单击工具栏上的“添加窗体”按钮即可。
5. 控件(工具)箱
由一组控件按钮组成,用于设计时在窗体中放置控件。除了缺省的工具箱布局之外,还可以通过从上下文菜单中选定“添加选项卡”并在结果选项卡中添加控件来创建自定义布局。
6. 弹出式(上下文)菜单
在要使用的对象上单击鼠标右键即可打开快捷菜单,其上会出现与当前对象相关的经常执行的操作,以加快操作速度。
7. 工程管理器窗口
用于浏览工程中所包含的窗体和模块,还可以从中查看代码、查看对象。
8. 属性窗口
是VB中一个比较复杂的窗口,其中列出了对选定窗体和控件的属性设置值。VB中正是通过改变属性来改变对象的特征,如大小、标题或颜色。
9. 对象浏览器
列出工程中有效的对象,并提供在编码中漫游的快速方法。可以使用“对象浏览器”浏览在 VB中的对象和其它应用程序,查看对那些对象有效的方法和属性,并将代码过程粘贴进自己的应用程序。
10. 对象浏览器
右击窗体中的对象、从工程管理器中点“查看代码”按钮。
11.窗体布局窗口
Form Layout window允许使用表示屏幕的小图象来布置应用程序中各窗体的位置。
12. 立即、本地和监视窗口这些附加窗口是为调试应用程序提供的,它们只在 IDE 之中运行应用程序时才有效。
1.3 面向对象程序设计的基本概念
1.基本术语
(1) 对象和对象类
对象是代码和数据的组合,可以作为一个单位来处理。对象可以是应用程序的一部分,比如可以是控件或窗体。整个应用程序也是一个对象。在 VB中可能用到的几种类型的对象:
示例 |
描述 |
命令按钮 |
窗体上的控件,象命令按钮和框架,它们都是对象。 |
窗体 |
Visual Basic 工程中的每一个窗体都是独立的对象。 |
数据库 |
数据库是对象,并且还包含其他对象,如字段、索引等。 |
图表 |
Microsoft Excel 中的图表是对象。 |
VB中的每个对象都是用类定义的。用饼干模子和饼干之间的关系作比,就会明白对象和它的类之间的关系。饼干模子是类。它确定了每块饼干的特征,比如大小和形状。用类创建对象,对象就是饼干。类是面向对象程序设计的核心技术,可以理解成一种定义了对象行为和外观的模板;把对象看作是类的原原本本的复制品,
类具有继承性、封装性、多态性、抽象性。
(2) 属性
属性是对对象特性的描述,VB为每一类对象都规定了若干属性,设计中可以改变具体对象的属性值。比如窗体的背景颜色、高度与宽度。
(3) 事件(Event)
事件是发生在对象上的动作。事件的发生不是随意的,某些事件仅发生在某些对象上。
在VB中事件的调用形式是:
Private Sub对象名_事件名
(事件内容)
End Sub
(4) 方法(Method)
方法指的是控制对象动作行为的方式。它是对象本身内含的函数或过程,它也是一个动作,是一个简单的不必知道细节的无法改变的事件,但不称作事件;同样,方法也不是随意的,一些对象有一些特定的方法。在VB里方法的调用形式是:
对象名.方法名
2. 属性、方法和事件之间的关系
VB 对象具有属性、方法和事件。属性是描述对象的数据;方法告诉对象应做的事情;事件是对象所产生的事情,事件发生时可以编写代码进行处理。
VB 的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。
日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。气球的属性包括可以看到的一些性质,如它的直径和颜色。其它一些属性描述气球的状态(充气的或未充气的)或不可见的性质,如它的寿命。通过定义,所有气球都具有这些属性;这些属性也会因气球的不同而不同。
气球还具有本身所固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。所有的气球都具备这些能力。
气球还有预定义的对某些外部事件的响应。例如,气球对刺破它的事件响应是放气,对放手事件的响应是升空。
在VB程序设计中,基本的设计机制就是:改变对象的属性、使用对象的方法、为对象事件编写事件过程。程序设计时要做的工作就是决定应更改哪些属性、调用哪些方法、对哪些事件作出响应,从而得到希望的外观和行为。
3.事件驱动模型
在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。
在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。
因为事件的顺序是无法预测的,所以在代码中必须对执行时的“各种状态”作一定的假设。当作出某些假设时(例如,假设在运行来处理某一输入字段的过程之前,该输入字段必须包含确定的值),应该组织好应用程序的结构,以确保该假设始终有效(例如,在输入字段中有值之前禁止使用启动该处理过程的命令按钮)。
在执行中代码也可以触发事件。例如,在程序中改变文本框中的文本将引发文本框的 Change 事件。如果 Change 事件中包含有代码,则将导致该代码的执行。如果原来假设该事件仅能由用户的交互操作所触发,则可能会产生意料之外的结果。正因为这一原因,所以在设计应用程序时理解事件驱动模型并牢记在心是非常重要的。
4.交互式开发
传统的应用程序开发过程可以分为三个明显的步骤:编码、编译和测试代码。但是 Visual Basic 与传统的语言不同,它使用交互式方法开发应用程序,使三个步骤之间不再有明显的界限。
VB在编程者输入代码时便进行解释,即时捕获并突出显示大多数语法或拼写错误。看起来就象一位专家在监视代码的输入。
除即时捕获错误以外,VB 也在输入代码时部分地编译该代码。当准备运行和测试应用程序时,只需极短时间即可完成编译。如果编译器发现了错误,则将错误突出显示于代码中。这时可以更正错误并继续编译,而不需从头开始。
由于 VB的交互特性,代码运行的效果可以在开发时进行测试,而不必等到编译完成以后。
1.4 利用VB开发应用程序的一般步骤
一个VB程序也称为一个工程,由窗体、标准模块、自定义控件及应用所需的环境设置组成。开发步骤一般如下:
1. 创建程序的用户界面
2. 设置界面上各个对象的属性
3. 编写对象响应事件的程序代码
4. 保存工程
5. 测试应用程序,排除错误
6. 创建可执行程序
1.5 创建VB程序示例
实例名称:VB欢迎你!
1.创建程序的用户界面
2.设置界面上各个对象的属性
控件 |
属性 |
设置值 |
Option1 |
Caption |
上课 |
Option2 |
Caption |
复习 |
|
BackColor |
&H00C0E0FF& |
|
Forecolor |
&H00FF0000& |
|
Font |
宋体 小四 |
Label1 |
Caption |
欢迎你学习VB!! |
|
Forecolor |
&H000000FF& |
|
Font |
隶书、二号 |
|
AutoSize |
True (自动调整外框大小) |
|
BackStyle |
0-Transparent ( 透明) |
Command1 |
Caption |
学习之道 |
3. 编写对象响应事件的程序代码
双击各对象,在相应的代码窗口里输入需要的代码。
事件名称 |
过程代码 |
命令按钮的单击事件 |
Private Sub Command1_Click()
Option1.Visible = True
Option2.Visible = True
Label1.ForeColor = RGB(0, 0, 255)
Label1.Caption = " ? ? ?"
End Sub |
窗体的单击事件 |
Private Sub Form_Click()
Form1.Picture = LoadPicture("d:\sj\abc.jpg")
Option1.Visible = False
Option2.Visible = False
Label1.ForeColor = RGB(255, 0, 0)
Label1.Caption = "预祝大家成功,干杯!"
End Sub |
窗体的双击事件 |
Private Sub Form_DblClick()
Form1.Picture = LoadPicture("")
Label1.Caption = " 欢迎你学习VB!!"
End Sub |
选项按钮1的单击事件 |
Private Sub Option1_Click()
Label1.Caption = "看清楚 听明白 记下来"
End Sub |
选项按钮2的单击事件 |
Private Sub Option2_Click()
Label1.Caption = "多上机 勤思考 善提问"
End Sub |
4.保存工程
(1)从文件菜单中选择保存窗体,将窗体保存成vbwelcomeyou . frm
(2)从文件菜单中选择保存工程,将工程保存成vbwelcomeyou . vbp
5.测试应用程序,排除错误
根据设想的效果调试程序,直到满足要求为止。
6.创建可执行程序
从文件菜单中选择 生成vbwelcomeyou . exe ,既可生成一个可执行文件。
注意:设计中遇到问题可以查阅MSDN的帮助文件。 |