VB考试教程:VB应用程序结构的模块

VB考试教程:VB应用程序结构的模块,第1张

一个应用程序实际上是使计算机完成特定任务的指令集。应用程序的结构就是指组织指令的方法,也就是指令存放的位置以及它们的执行顺序。应用程序越复杂,对结构的要求也就越明显。而且如何在一个大的应用程序中快速查找特定指令,程序的指令也起着重要的作用。

一、模块

VB的代码存储在模块中。在VB中提供了三种类型的模块:窗体模块、标准模块和类模块。

简单的应用程序可以只有一个窗体,所用的程序都驻留在窗体模块中,而当应用程序庞大复杂时,就要另外附加窗体。最终可能有几个窗体中有一些共同都要执行的代码,为了在两个窗体中不产生重复代码,可创建一个独立的模块,用它实现代码公用。该独立模块即是标准模块。此外还可以建立包含共享代码与数据的类模块。

每个标准模块、类模块和窗体模块可包含:

声明。 可将常数、类型、变量和动态链接库(DLL)过程的声明放在窗体、类或标准模块的声明部分。每个模块只有一个声明部分。

过程。每个模块可有多个过程,过程是划分VB代码的最小单元,每个过程是一个可执行的代码片段。VB中主要有事件过程、子过程、函数过程或者属性过程等。

1、各种模块类型

(1)窗体模块

由于VB是面向对象的应用程序开发工具,所以应用程序的代码结构就是该程序在屏幕上表示的对应模型。根据定义,对象包含数据和代码。应用程序中的每个窗体都有一个相对应的窗体模块(文件扩展名为.frm)

窗体模块是VB应用程序的基础。窗体模块可以包含处理事件的过程、通用过程以及变量、常数、自定义类型和外部过程的窗体级声明。写入窗体模块的代码是该窗体所属的具体应用程序专用的;也可以引用该程序内的其它窗体和对象

每个窗体模块都包含事件过程,在事件过程中有为响应该事件而执行的程序段。窗体可包含控件。在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集。除了事件过程,窗体模块还可包含通用过程,它对来自该窗体中任何事件过程的调用都作出响应。

(2)标准模块

可将那些与特定窗体或控件无关的代码放入标准模块中。标准模块中包含应用程序内的允许其它模块访问的过程和声明。它们可以包含变量、常数、类型、外部过程和全局声明或模块级声明。写入标准模块的代码不必固定在特定的应用程序上。

使用标准模块

标准模块或代码模块是具有文件扩展名.bas,并包含能够在程序任何地方使用的变量和过程的特殊文件。

在编写程序时,很可能会遇到一些使用相同变量和例程的窗体和事件过程。在缺省状态下,变量对于事件过程来说是局部的,就是说仅能在创建这些变量的事件过程中读取或者修改变量。与之相似,事件过程对于创建它们的窗体来说也是局部。为了在工程中的所有窗体和事件中共享变量和过程,需要在该工程的一个或多个标准模块中对它们进行声明和定义。

标准模块让你能够在整个程序中共享变量和过程。

正如窗体一样,标准模块被单独列在Project(工程)窗口内,并可通过使用File(文件)菜单中的Save Modulel As菜单项存盘。但是,与窗体不同,标准模块不包含对象或属性设置而只包含可在代码窗口中显示和我的代码。

创建并保存标准模块

创建标准模块:

如要在程序中创建新的标准模块,那么单击工具条“Add Form(添加窗体)”按钮上的下箭头并单击“Mode(添加模块)”,或者单击“Project(工程)”菜单中的“Add Module(添加模块)”菜单项,可以在工程中创建一个空的标准模块。

VB在工程中增加一个名为“Module1”的标准模块。该模块对应的代码窗口被打开,在这个代码窗口中的“对象”和“过程”列表框的内容表明该标准模块的通用声明已被打开。在此所声明的变量与过程在整个程序都可以使用。

这时打开“工程资源管理器”窗口,便能看到整个工程资源管理器窗口的一个新文件夹中列出了你添加到程序中的标准模块。括弧中的文件名Module1是该模块的缺省文件名。该模块的对象名(该模块在程序中的名称)显示在括弧的左侧。

从“属性窗口”可见,由于该模块不包含对象,因此它惟一的属性就是Name属性。可以修改Name属性,如改为modVariables,然后按ENTER键。

你也可以通过使用“Project(工程)”菜单中的“Add File(添加文件)”菜单项将此文件通过其文件名加载到另一个工程中。

保存标准模块:

在“File(文件)”菜单中,单击“Save Module1 As(Module1另存为)”菜单项将这个空的标准模块存盘。该标准模块作为.bas文件保存到磁盘,并且“工程资源管理器”窗口中该模块的文件名也同时更新。

删除标准模块

如果要从工程中删除标准模块,那么在“工程资源管理器”窗口单击选中该模块,然后单击“Project(工程)”菜单中的“Remove(删除)”菜单项(或右击选择)。Remove(删除) *** 作并未将该模块从你的硬盘中删除,但它删除了该模块与当前工程之间的链接。

需要使用模块,那就将这个变量定义在模块中

例如在Module1中:public srPaste as Variant(不知道你要什么类型,就定为Variant),或者使用 global 标识符,这和public 在模块中的的意义是一样的。

在其他地方使用时 可以直接引用,也可以通过Module1.srPaste使用。

2、不需要使用模块,那你就直接在通用中:public srPaste as Variant ,其他窗口使用时 通过窗口名引用 :Form1.srPaste,但是不可用global

一、DLL制作

1.打开新建工程

2.选择“Active DLL”,单击“打开”按钮。

3.单击打开按钮后,系统在工程中添加一类模块。

4.为方便对DLL的引用可以改一下名称,如将类模块的名称改为Fraction。

5.在本类模块中添加代码如下。

Option Explicit

Public Num

Public Den

Public Sub Add(NUm2, Den2)

Num = NUm2 + Den2

End Sub

Public Sub Sbt(NUm2, Den2)

Num = NUm2 - Den2

End Sub

Public Sub Mul(NUm2, Den2)

Num = NUm2 * Den2

End Sub

Public Sub Div(NUm2, Den2)

Num = NUm2 / Den2

End Sub

6.为与其他工程相区别,可将本工程命名为“Math”。

7.生成DLL文件。

二、DLL引用

1.建立一个普通窗体。

2.添加引用。

3.在程序中添加以下代码。

Option Explicit

Public Frac As New Fraction

Private Sub Command1_Click()

Frac.Add Val(Text1.Text), Val(Text2.Text)

Text3.Text = Frac.Num

End Sub

Private Sub Command2_Click()

Frac.Sbt Val(Text1.Text), Val(Text2.Text)

Text3.Text = Frac.Num

End Sub

Private Sub Command3_Click()

Frac.Mul Val(Text1.Text), Val(Text2.Text)

Text3.Text = Frac.Num

End Sub

Private Sub Command4_Click()

Frac.Div Val(Text1.Text), Val(Text2.Text)

Text3.Text = Frac.Num

End Sub

Private Sub Command5_Click()

Text1 = ""

Text2 = ""

Text3 = ""

End Sub

4.运行程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7998780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存