Visual Basic的编程基础
Visual Basic的编程基础-----------(初学天地)
一个应用程序实际上无非是指挥计算机完成任务的指令集。应用程序的
结构是组织指令的方法,也就是指令存放的位置和指令的执行顺序。
典型的“hello word”例子以及诸如此类的简单应用程序都具有简单结构。
对于只有一行的代码来说,组织结构并不十分重要。但应用程序越复杂
对组织或结构的要求也就越明显。试想一下,如果允许应用程序以随机顺序
去执行,那将会带来什么样的混乱。除了对应用程序的执行进行控制外,如
何在应用程序中轻松查找特定指令,结构也起着很重要的作用。
由于 Visual Basic 应用程序是基于对象的,所以应用程序的代码结构就是
该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕
上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。应用程序
中的每个窗体都有一个包含其代码的相关的窗体模块(文件扩展名为.FRM)。
每个窗体模块都包含事件过程,即代码部分,其中有为响应特定事件而执行
的指令。窗体可包含控件。在窗体模块中,对窗体上的每个控件都有一个对
应的事件过程集。除了事件过程,窗体模块还可包含通用过程,它对来自任
何事件过程的调用都作出响应。
可将那些与特定窗体或控件无关的代码放入另一类型的模块--标准模块
(文件扩展名为.BAS)中。一个过程可能用来响应几个不同对象中的事件,
应该将这个过程放在标准模块中,而不应在每一个对象的事件过程中重复相
同的代码。
用类模块(文件扩展名为.cLs)创建对象,这些对象可被应用程序内的过
程调用。标准模块只包含代码,而类模块既包含代码又包含数据,可视为没
有物理表示的控件。
事件驱动应用程序的工作方式
事件是窗体或控件识别的动作。在响应事件时,事件驱动应用程序执行
Basic代码。Visual Basic的每一个窗体和控件都有一个预定义的事件
集。如果其中有一个事件发生,而且,在关联的事件过程中存在代码,则
Visual Basic调用该代码。
尽管 Visual Basic 中的对象自动识别预定义的事件集,但要判定它们是否
响应具体事件以及如何响应具体事件则是编程的责任了。代码部分(即事件
过程)与每个事件对应。想让控件响应事件时,就把代码写入这个事件的
事件过程之中。
对象所识别的事件类型多种多样,但多数类型为大多数控件所共有。
例如,大多数对象都能识别click事件:如果单击窗体,则执行窗体
的单击事件过程中的代码;如果单击命令按钮,则执行命令按钮的
click事件过程中的代码。每个情况中的实际代码几乎完全不一样。
这里是事件驱动应用程序中的典型事件序列:
1.启动应用程序,装载和显示窗体。
2.窗体(或窗体上的控件)接收事件。事件可由用户引发(例如键盘操作)
可由系统引发(例如定时器事件),也可由代码间接引发(例如,当代码
装载窗体时的Load事件)。
3.如果在相应的事件过程中存在代码,就执行代码。
4.应用程序等待下一次事件。
注意 许多事件伴随其它事件发生。例如,在DBlClick事件发生时,
MOuseDown、MouseUp和CIick事件也会发生。
开始编码之前
在 Visual Basic 中创建应用程序的最重要的(又往往为人忽视的)部分是
设计阶段。需要为应用程序设计一个用户界面,这是显然的;但需要设计代
码的结构就不那么显然了。构造应用程序的方法不同,可造成应用程序的性
能及代码的可维护性、可使用性不同。
Visual Basic 应用程序的代码是用分层方式组织的。典型应用程序包括若
干模块:应用程序中每个窗体的窗体模块、共享代码的可选标准模块以及可
选的类模块。每个模块包含若干含有代码的过程:event过程、Sub子过
程或function过程,以及Property过程。
判定什么过程属于什么模块,这与创建的应用程序的类型有一定的关系。因
为 Visual Basic是基于对象的,所以,利用应用程序代表的对象来考虑应
用程序将是有益的。
代码模块
Visual Basic 的代码存储在模块中。模块有三种类型:窗体、标准和类。
简单的应用程序可以只有一个窗体,应用程序的所有代码都驻留在窗体模块
中。而当应用程序庞大复杂时,就要另加窗体。最终可能会发现在几个窗体
中都有要执行的公共代码。因为不希望在两个窗体中重复代码,所以要创建
一个独立模块,它包含实现公共代码过程。独立模块应为标准模块。此后
可以建立一个包含共享过程的模块库。
每个标准模块,类模块和窗体模块都可包含:
1.声明。可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、
类或标准模块的模块级。
2.过程。Sub、Function 或者 Property 过程可以作为单元来执行的
代码片段。
窗体模块
窗体模块(文件扩展名为 .FRM )是大多数Visual Basic 应用程序
的基础。窗体模块可以包含处理事件的过程、通用过程以及变量、常
数、类型和外部过程的窗体级声明。如果要在文本编辑器中观察窗体
模块,则还会看到窗体及其控件的描述,包括它们的属性设置值。写
入窗体模块的代码是该窗体所属的具体应用程序专用的;它也可以引
用该应用程序内的其它窗体或对象。
标准模块
标准模块(文件扩展名为.BAS)是应用程序内其它模块访问的过程和声明
的容器。它们可以包含变量、常数、类型、外部过程和全局过程的全局(在
整个应用程序范围内有效的)声明或模块级声明。写入标准模块的代码不必
绑在特定的应用程序上;如果不小心用名称引用窗体和控件,则在许多不同
的应用程序中可以重用标准模块
类模块
在 Visual Basic 中类模块(文件扩展名为 .CLS)是面向对象编程的基础。
可在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方
法。实际上,窗体正是这样一种类模块,在其上可安放控件,可显示窗体窗
口。
注意Visual Basic的专业版和企业版也包合ActiveX文档、ActiveX
设计器和用户控件。它们介绍了具有不同文件扩展名的新模块类型。从编写
代码的角度来看,这些模块应视同为窗体模块。
使用“代码编辑器”
Visual Basic“代码编辑器”是一个窗口,大多数代码都在此窗口上编写。
它象一个高度专门化的字处理软件,有许多便于编写 Visual Basic 代码的
功能。
因为要操作模块中的 Visual Basic 代码,所以要为每一个从“工程资源管
理器”中选择的模块打开一个独立的“代码编辑器”窗口。在每个模块中,
对于模块中所包含的每个对象,将模块中的代码再细分出与对象对应的独立
部分。用“对象列表框”实现各部分间的切换。在窗体模块中,该列表包
含一个通用段,一个属于窗体自身的段以及窗体所包含的每一控件的段。对
于类模块,列表包括一个通用段和一个类段;对于标准模块,只有一个通用
段被显示。
每一段代码都可包含几个用“过程列表框”访问的不同过程。对窗体或控件
的每一个事件过程,窗体模块的过程列表都包含一个独立的段。例如,Label
控件的过程列表就包含Change事件段、Click事件段和DblClick事件
段等等。类模块只列举类本身的事件过程—初始化和终止。标准模块不列
举任何事件过程,因为标准模块不支持事件。
模块通用段的过程列表只包含唯一段即声明段,其中放置模块级的变
量、常数和DLL声明。当在模块中添加子过程或函数过程时,那些过
程被添加到声明段下方的“过程列表框”中。
代码的两种不同视图都可用于“代码编辑器”窗口。可以一次只查看一个过
程,也可以查看模块中的所有过程,这些过程彼此之间用线隔开。为了在两
个视图之间进行切换,利用编辑器窗口左下角的“查看选择”按钮。
自动完成编码
Visual Basic 能自动填充语句、属性和参数,这些性能使编写代码更加方
便。在输入代码时,编辑器列举适当的选择、语句或函数原型或值。通过“工
具”菜单上的“选项”命令访问“选项”对话框,在“选项”对话框的“编
辑器”选项卡上可用这样的选项,由它们决定是允许还是禁止各代码的设置
值。
在代码中输入一控件名时,“自动列出成员特性”会亮出这个控件的下拉式
属性表。键入属性名的前几个字母,就会从表中选中该名字,按Tab键将完成
这次输入。当不能确认给定的控件有什么样的属性时,这个选项是非常有帮
助的。即使选择了禁止“自动列出成员特性”,仍可使用 CTRL+J 组合键得
到这种性能。
“自动快速信息”功能显示语句和函数的语法。当输入合法的 Visual Basic
语句或函数名之后,‘语法立即显示在当前行的下面,并用黑体字显示它的
第一个参数。在输入第一个参数值之后,第二个参数又出现了,同样也是黑
体字。“自动快速信息”也可以用 CTRL+I 组合键得到。
Visual Basic 编程的变量定义,数组的使用以及条件语句,循环语句,子程序和
函数的调用在很多地方都有介绍请网友自行学习。