欢迎来到天天文库
浏览记录
ID:15337978
大小:125.50 KB
页数:7页
时间:2018-08-02
《visual basic 编码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、开始编码之前 在VisualBasic中创建应用程序的最重要的(又往往为人忽视的)部分是设计阶段。需要为应用程序设计一个用户界面,这是显然的;但需要设计代码的结构就不那么显然了。构造应用程序的方法不同,可造成应用程序的性能及代码的可维护性、可使用性不同。 VisualBasic应用程序的代码是用分层方式组织的。典型应用程序包括若干模块:应用程序中每个窗体的窗体模块、共享代码的可选标准模块以及可选的类模块。每个模块包含若干含有代码的过程:event过程、Sub子过程或Function过程,以及Property过程。
2、 判定什么过程属于什么模块,这与创建的应用程序的类型有一定关系。因为VisualBasic是基于对象的,所以,利用应用程序代表的对象来考虑应用程序将是有益的。在这一章,示例应用程序Vcr.vbp的设计建立在盒式录像机和电视机组成的对象基础之上。VCR应用程序包含两个窗体模块、一个标准模块和两个类模块。可用“对象浏览器”来检查工程的结构(图5.2)。 VCR应用程序的主窗体(frmVCR)是VCR与电视屏幕组合的可视图像(图5.3)。它包括几个对象,这些对象以现实世界中的图景为模型。一组命令按钮(cmdPlay、cmdRe
3、cord等等)模仿的是操作VCR的按钮。软件VCR还包括时钟(lblTime)、通道指示器(lblChannel)、功能指示器(shpPlay、shpRecord等等)以及显像管(picTV)。Vcr.frm窗体模块包括所有这些对象的事件过程。 在很多情况中都存在着多个对象共享的重复过程。例如,“按下”“放像”、“倒带”或“录像”按钮时就要求“暂停”和“停止”按钮有效。最好创建一个共享的子过程,所有按钮都可调用它,而不要在每个按钮的Click事件过程中重复这段代码。如果将来要修改这些子程序,则只在一个地方修改就可进行全部修
4、改。标准模块Vcr.bas包含各种共享过程。 VCR的某些部分是不可视的,比如磁带的输送机置或录制电视节目的逻辑便是如此。同样,软件VCR的一些功能没有可视图像。这些部分和功能是作为两个类模块Recorder.cls和Tape.cls实现的。clsRecorder模块包含启动“录像”进程的代码;而clsTape模块则包含控制“磁带”方向和速度的代码。这些模块中所定义的类与窗体中的任何对象都没有直接关系。因为它们是独立的代码模块,所以不作任何修改就可轻轻松松重建一个录音程序。 除了设计代码结构之外,建立命名约定也是很重
5、要的。按照缺省规定,VisualBasic将工程的第一个窗体命名为Form1,第二个窗体为Form2,依此类推。如果应用程序中有几个窗体,则最好赋予它们有含义的名字,以免在编写或编辑代码时出现混淆情况。在附录B“VisualBasic编码约定”中列举了一些VisualBasic建议的命名约定。 在进一步了解对象和学习编写代码时,可参考VCR示例应用程序,查找有关各种编码技巧的例子。代码编写机制 在着手编写代码之前,了解VisualBasic编写代码的机制是很重要的。和任何编程语言一样,VisualBasic有自身的组
6、织、编辑和格式化代码规则。 代码模块 VisualBasic的代码存储在模块中。模块有三种类型:窗体、标准和类。简单的应用程序可以只有一个窗体,应用程序的所有代码都驻留在窗体模块中。而当应用程序庞大复杂时,就要另加窗体。最终可能会发现在几个窗体中都有要执行的公共代码。因为不希望在两个窗体中重复代码,所以要创建一个独立模块,它包含实现公共代码的过程。独立模块应为标准模块。此后可以建立一个包含共享过程的模块库。 每个标准模块、类模块和窗体模块都可包含: 声明。可将常数、类型、变量和动态链接库(DLL)过程的
7、声明放在窗体、类或标准模块的模块级。 过程。Sub、Function或者Property过程包含可以作为单元来执行的代码片段。本章后面的“过程概述”一节中将讨论这些内容。 窗体模块 窗体模块(文件扩展名为.FRM)是大多数VisualBasic应用程序的基础。窗体模块可以包含处理事件的过程、通用过程以及变量、常数、类型和外部过程的窗体级声明。如果要在文本编辑器中观察窗体模块,则还会看到窗体及其控件的描述,包括它们的属性设置值。写入窗体模块的代码是该窗体所属的具体应用程序专用的;它也可以引用该应用程序内的其它窗
8、体或对象。 标准模块 标准模块(文件扩展名为.BAS)是应用程序内其它模块访问的过程和声明的容器。它们可以包含变量、常数、类型、外部过程和全局过程的全局(在整个应用程序范围内有效的)声明或模块级声明。写入标准模块的代码不必绑在特定的应用程序上;如果能
此文档下载收益归作者所有