更复杂的工程

上传人:ca****in 文档编号:116119144 上传时间:2022-07-04 格式:PPTX 页数:32 大小:259.17KB
收藏 版权申诉 举报 下载
更复杂的工程_第1页
第1页 / 共32页
更复杂的工程_第2页
第2页 / 共32页
更复杂的工程_第3页
第3页 / 共32页
资源描述:

《更复杂的工程》由会员分享,可在线阅读,更多相关《更复杂的工程(32页珍藏版)》请在装配图网上搜索。

1、http:/ Basic工程结构、公用过程的定义和调用与变量的作用域。n教学目标:教学目标:掌握Show方法和Hide方法;掌握Sub过程和Function过程的编写与调用;掌握哑实结合按值传送和按址传送的区别;掌握标准模块的定义和使用方法。n9.1 公用过程公用过程 n9.2 多窗体多窗体 n9.3 多窗体与公用过程、标准模块多窗体与公用过程、标准模块 n9.4 综合运用综合运用 n在前面章节中,曾经使用过事件过程的调用。如例在前面章节中,曾经使用过事件过程的调用。如例8.1 中,中,C o m m a n d 1 _ C l i c k 过 程 调 用过 程 调 用Combo1_DblCl

2、ick事件过程,这样减少了程序代码。事件过程,这样减少了程序代码。在程序设计中,有些数据处理的操作是相同的,在在程序设计中,有些数据处理的操作是相同的,在程序中把要进行同类的操作的代码独立出来,供其程序中把要进行同类的操作的代码独立出来,供其他程序使用。我们把这种公用的,完成某一特定功他程序使用。我们把这种公用的,完成某一特定功能的程序设计成可供其他程序调用的、独立的程序能的程序设计成可供其他程序调用的、独立的程序段,称为公用过程,也称为子程序。段,称为公用过程,也称为子程序。n9.1.1 属于窗体的子程序公用过程属于窗体的子程序公用过程 n9.1.2 属于窗体的函数公用过程属于窗体的函数公用

3、过程 n9.1.3 参数的传送参数的传送 n9.1.4 函数过程的使用函数过程的使用 n9.1.5 参数的传送参数的传送 n例例9.1 9.1 绘制带中心轴的小圆绘制带中心轴的小圆 设计一个窗体,在窗体设计一个窗体,在窗体上添加两个命令上添加两个命令按钮。运行程序时,单击【开始】在窗按钮。运行程序时,单击【开始】在窗体不同位置绘制体不同位置绘制4 4个带中心轴的小圆,单个带中心轴的小圆,单击【退出】结束程序的执行。击【退出】结束程序的执行。1.子程序公用过程的格式子程序公用过程的格式 因因Sub过程常被其他事件过程调用,也称它为公过程常被其他事件过程调用,也称它为公用过程或子程序过程。与事件过

4、程不同的是:用过程或子程序过程。与事件过程不同的是:子程序过程必须由其他过程调用,它用来完成子程序过程必须由其他过程调用,它用来完成特定的任务,子程序过程由用户创建。特定的任务,子程序过程由用户创建。子程序过程可以建立在窗体或标准模块中。子程序过程可以建立在窗体或标准模块中。Sub子程序过程的一般格式为:子程序过程的一般格式为:Private|PublicStaticSub过程名过程名(形参表形参表)语句序列语句序列ExitSubEndSub形参表用于声明形参的名称、个数、位置和类型。形参表的格式如形参表用于声明形参的名称、个数、位置和类型。形参表的格式如下。下。ByVal变量名变量名()AS

5、类型类型,ByVal变量名变量名()AS类型类型形参在子程序被调用前没有具体的数值,它的命名规则和普通变量形参在子程序被调用前没有具体的数值,它的命名规则和普通变量一样。形参不能是常数、表达式和数组元素,但可以是数组名。一样。形参不能是常数、表达式和数组元素,但可以是数组名。2.建立公用过程的步骤建立公用过程的步骤 (1)打开要添加过程的代码编辑窗口。打开要添加过程的代码编辑窗口。(2)选择【工具】下拉菜单中的【添加过程】命令,打开选择【工具】下拉菜单中的【添加过程】命令,打开【添加过程】对话框,如图【添加过程】对话框,如图9.2所示。所示。(3)在对话框中输入过程名,选择过程类型、范围和是否

6、使在对话框中输入过程名,选择过程类型、范围和是否使用用Static说明过程。说明过程。(4)单击【确定】按钮,返回【代码编辑】窗口。单击【确定】按钮,返回【代码编辑】窗口。在【代码编辑】窗口出现了过程的首尾语句。在在【代码编辑】窗口出现了过程的首尾语句。在Sub语语句中加入形参,在句中加入形参,在Sub与与 End Sub之间键入本过程要执行的之间键入本过程要执行的代码。代码。3.调用子程序过程的方法调用子程序过程的方法 调用本模块的过程有两种方法,分别是使用调用本模块的过程有两种方法,分别是使用Call语句调用和语句调用和直接使用过程名调用。直接使用过程名调用。使用使用Call语句语句Cal

7、l过程名过程名(实参表实参表)直接使用过程名直接使用过程名过程名过程名实参表实参表 两种调用方法的区别在于,使用两种调用方法的区别在于,使用Call语句时,实参表必须用语句时,实参表必须用括号括起来;直接使用过程名时,实参表不要用括号括起来。括号括起来;直接使用过程名时,实参表不要用括号括起来。事件过程事件过程 :Call P1(A,B,C):PrivateSubP1(A,B,C)语句序列语句序列ExitSubEndSubn程序中凡是要执行子程序的地方都可以写上调用子程序的语程序中凡是要执行子程序的地方都可以写上调用子程序的语句。调用要求实参与形参一一对应。实参允许是常数、变量句。调用要求实参

8、与形参一一对应。实参允许是常数、变量名、数组元素、数组名和任意算术表达式或逻辑表达式,但名、数组元素、数组名和任意算术表达式或逻辑表达式,但必须注意,实参和形参的个数应该相同,它们之间的类型、必须注意,实参和形参的个数应该相同,它们之间的类型、位置必须一一对应。实参和形参之间数据的传递是依据它们位置必须一一对应。实参和形参之间数据的传递是依据它们排列的位置实现的,而不是用名字相同来实现,即它们之间排列的位置实现的,而不是用名字相同来实现,即它们之间数据的传递与名字本身无关。子程序的形参如果是数组名,数据的传递与名字本身无关。子程序的形参如果是数组名,则与之相应的实参也必须是数组名。实参与形参之

9、间的这种则与之相应的实参也必须是数组名。实参与形参之间的这种数据传递通常称为虚实结合。数据传递通常称为虚实结合。例9.2 计算四边型的面积 设计一个窗体,在窗体上添加两个命令按钮。运行程序时,单击【计算】在窗体输出已知四边长和一条对角线长的四边型面积,单击【退出】结束程序的执行。1.定义函数过程定义函数过程函数过程可以建立在窗体或标准模块中。函数过程可以建立在窗体或标准模块中。函数过程的一般格式为:函数过程的一般格式为:Private|PublicStaticFunction函数函数名名(形参表形参表)As类型类型语句序列语句序列ExitFunction函数名函数名=表达式表达式EndFunc

10、tion函数过程格式中各关键字的含义同子程序过程。函数过程格式中各关键字的含义同子程序过程。2.调用函数过程调用函数过程 调用自定义函数过程与调用内部函数的方法一样:在表达式中写上函数过程的名字,并给出相应的实参。过程是独立的程序段,过程中虚拟参数在调用时才能确定,因此过程与调用程序之间需要传送数据。过程与过程外部的数据通讯有两种方式:n 通过窗体级变量或全程变量;n 通过参数的哑实结合实现数据传送。用哑实结合的方式,实现调用程序和被调用过程之间用哑实结合的方式,实现调用程序和被调用过程之间的数据传送,有两种方式:按值传送和按址传送。的数据传送,有两种方式:按值传送和按址传送。n 按值传送,在

11、调用语句中的实际参数是常量或表达按值传送,在调用语句中的实际参数是常量或表达式,或者当要求变量按值传送时,可以把变量用括号式,或者当要求变量按值传送时,可以把变量用括号括起来,使之成为一个表达式。在过程的定义语句中括起来,使之成为一个表达式。在过程的定义语句中使用使用Byval关键字指定形式参数,也表示按值传送参数。关键字指定形式参数,也表示按值传送参数。n 按地址传送,按地址传送,Call语句中的实际参数为变量名,与语句中的实际参数为变量名,与实际参数对应的形式参数也没有用关键字实际参数对应的形式参数也没有用关键字Byval指定,指定,表示是按地址传送参数。另外,当实际参数和对应的表示是按地

12、址传送参数。另外,当实际参数和对应的形式参数都是数组时,也是按地址传送参数。形式参数都是数组时,也是按地址传送参数。例如,下面程序例如,下面程序OptionExplicitSubbubian(ByValaAsString,bAsInteger)a=VB&a:b=b+1Print调用时调用时a是:是:;a,调用时调用时b是:是:;bEndSubPrivateSubform_Click()DimaAsString,bAsIntegera=程序设计程序设计Print调用前调用前a是:是:;a,调用前调用前b是:是:;bCallbubian(a,(b)Print调用后调用后a是:是:;a,调用后调用后

13、b是:是:;bEndSub运行时,窗体输出是:运行时,窗体输出是:调用前调用前a是:程序设计是:程序设计调用前调用前b是:是:0调用时调用时a是:是:VB程序设计程序设计 调用时调用时b是:是:1调用后调用后a是:程序设计是:程序设计调用后调用后b是:是:0OptionExplicitSubbubian(aAsString,bAsInteger)a=VB&a:b=b+1Print调用时调用时a是:是:;a,调用时调用时b是:是:;bEndSubPrivateSubform_Click()DimaAsString,bAsIntegera=程序设计程序设计Print调用前调用前a是:是:;a,调用

14、前调用前b是:是:;bCallbubian(a,b)Print调用后调用后a是:是:;a,调用后调用后b是:是:;bEndSub运行时,窗体输出是:运行时,窗体输出是:调用前调用前a是:程序设计是:程序设计调用前调用前b是:是:0调用时调用时a是:是:VB程序设计程序设计调用时调用时b是:是:1调用后调用后a是:是:VB程序设计程序设计调用后调用后b是:是:1 在单一窗体有时不能满足用户的需求时,在单一窗体有时不能满足用户的需求时,VBVB允许使用多重窗允许使用多重窗体。多重窗体实际就是工程中包含多个普通窗体,每个窗体体。多重窗体实际就是工程中包含多个普通窗体,每个窗体的用法和特点与前几章介绍

15、的窗体一样。的用法和特点与前几章介绍的窗体一样。n例例9.3 9.3 两个窗体两个窗体 设计两个窗体,在第一个窗体上添加一个标签框和设计两个窗体,在第一个窗体上添加一个标签框和5 5个命令个命令按钮,在第二个窗体上添加两个命令按钮。运行程序时,显按钮,在第二个窗体上添加两个命令按钮。运行程序时,显示第一个窗体,单击【左对齐】【右对齐】【居中显示】,示第一个窗体,单击【左对齐】【右对齐】【居中显示】,使标签框中的字完成对齐格式设置,单击【下一个】显示第使标签框中的字完成对齐格式设置,单击【下一个】显示第二个窗体,隐藏本窗体,单击【退出】结束程序的执行。在二个窗体,隐藏本窗体,单击【退出】结束程序

16、的执行。在第二个窗体显示时,单击【显示】在窗体输出第二个窗体显示时,单击【显示】在窗体输出“这是第二个这是第二个窗体窗体”,单击【返回】显示第一个窗体,隐藏本窗体。,单击【返回】显示第一个窗体,隐藏本窗体。n9.2.1 9.2.1 多窗体的操作多窗体的操作 n9.2.2 9.2.2 启动窗体与保存启动窗体与保存 1.窗体的添加窗体的添加 从【工程】菜单中选择【添加窗体】,并单击对话框的【打从【工程】菜单中选择【添加窗体】,并单击对话框的【打开】,便把第二个窗体添加到工程中。也可以使用工具栏中开】,便把第二个窗体添加到工程中。也可以使用工具栏中的【添加窗体】按钮完成。窗体添加完成后,的【添加窗体

17、】按钮完成。窗体添加完成后,VB集成环境集成环境的工程窗口就会显示出新增加的窗体。的工程窗口就会显示出新增加的窗体。2.窗体的加载方法窗体的加载方法格式:格式:Load窗体名称窗体名称 Load方法将指定窗体加载到内存,但不显示在屏幕上。方法将指定窗体加载到内存,但不显示在屏幕上。Load方法将触发窗体的方法将触发窗体的Form_Load事件,事件,Load方法执行之方法执行之后,在程序中可以引用窗体中的控件及其属性。后,在程序中可以引用窗体中的控件及其属性。3.窗体的卸载方法窗体的卸载方法格式:格式:Unload窗体名称窗体名称 Unload方法是将窗体从内存中卸载。如果窗体显示在屏方法是将

18、窗体从内存中卸载。如果窗体显示在屏幕上,那么也将清除屏幕上的显示。幕上,那么也将清除屏幕上的显示。4.Show方法方法格式:格式:窗体名称窗体名称.show模式模式 Show方法用于将窗体显示在屏幕上。如果窗体没有在内方法用于将窗体显示在屏幕上。如果窗体没有在内存中,则存中,则Show方法会自动将窗体加载并显示。方法会自动将窗体加载并显示。其中的其中的“模式模式”表示被显示窗体的状态,其值可为表示被显示窗体的状态,其值可为1或或0。值等于值等于1时,表示窗体状态为时,表示窗体状态为“模态模态”,显示,显示“模态模态”窗窗口时,用户无法把鼠标指针移出当前窗口,只有关闭口时,用户无法把鼠标指针移出

19、当前窗口,只有关闭“模态模态”窗口后才能对其他窗口进行操作;值等于窗口后才能对其他窗口进行操作;值等于0时,时,表示窗体状态为表示窗体状态为“非模态非模态”,显示,显示“非模态非模态”窗口时,窗口时,用户不必关闭当前窗口就可以对其他窗口进行操作。用户不必关闭当前窗口就可以对其他窗口进行操作。5.Hide方法方法格式:格式:窗体名称窗体名称.Hide Hide方法是将窗体隐藏起来。使用方法是将窗体隐藏起来。使用Hide方法后,窗体虽然方法后,窗体虽然没有在屏幕上显示,但是仍然在内存中,因此窗体及其内部没有在屏幕上显示,但是仍然在内存中,因此窗体及其内部控件可以引用。与控件可以引用。与Hide方法

20、效果相同的操作是将窗体的方法效果相同的操作是将窗体的Visible属性置为属性置为False。前面重点讨论了多重窗体的设计和多重窗体之间的切换,添加多窗体后,在界面设计时,多窗体切换非常容易,用下面方法可以使某个窗体窗口为活动窗体窗口。l 单击要切换到的窗体窗口中某一裸露的部分。l 双击工程资源管理器窗格中要切换到窗体窗口的图标。切换到的窗体窗口为活动窗体窗口,其标题栏为蓝色,具有焦点。在运行多重窗体工程时,哪一个窗体先启动,用户是可以设定。保存多重窗体工程也必须保存每个窗体文件。1.设置启动窗体设置启动窗体 在运行多重窗体工程时,系统默认将第一个建立的窗体首在运行多重窗体工程时,系统默认将第

21、一个建立的窗体首先打开。该窗体称为启动窗体。用户可以重新设定,启动先打开。该窗体称为启动窗体。用户可以重新设定,启动窗体的设定方法如下:窗体的设定方法如下:从【工程】菜单中选择【工程属性】,然后在弹出的【工从【工程】菜单中选择【工程属性】,然后在弹出的【工程属性】对话框中选择【通用】选项卡,再用其中的【启程属性】对话框中选择【通用】选项卡,再用其中的【启动对象】设定启动窗体。动对象】设定启动窗体。2.保存或打开多重窗体的工程保存或打开多重窗体的工程 在建立多重窗体的工程时,工程资源管理器窗格可以很容在建立多重窗体的工程时,工程资源管理器窗格可以很容易地观察工程中包含的窗体和标准模块。易地观察工

22、程中包含的窗体和标准模块。例9.4B 计算a!+b!+c!。要求在标准模块中编写函数子程序fact用来计算n!,用事件过程调用fact完成计算a!+b!+c!每个窗体对应一个窗体模块。窗体模块保存在扩展名为.frm的文件中。如果应用程序中有多个窗体,将对应多个窗体模块,存储多个.frm的窗体文件。窗体模块中包含有:窗体的变量说明、窗体和控件的属性设置、事件过程、窗体内的公用过程。在VB集成环境的代码中,可以看到的有:通用_声明、事件过程和公用过程。1.1.通用通用_ _声明声明 “通用_声明”是窗体代码的开始部分,主要存放窗体级变量和常量的声明以及一些函数的声明。在“通用_声明”部分声明的变量

23、和常量在整个窗体的各个过程中有效。2.2.事件过程事件过程 事件过程是用于处理各种事件的代码,它与一个对象发生联系,是基于事件驱动的编程。事件过程放在“通用_声明”部分之后,各个过程没有顺序之分,事件过程既可以用于响应事件也可以被其他的程序调用。事件过程中定义的常量和变量在过程中有效。3.3.在窗体中的公用过程在窗体中的公用过程 在任何窗体中,若定义的Sub过程和Function过程前加Private,则该过程只能被它所在窗体的其他事件过程或子程序调用;若定义的Sub过程和Function过程前不加Private或加Public,则该过程不仅能被它所在窗体的其他事件过程或子程序调用,还允许其他

24、窗体或模块的程序调用,但其他窗体或模块的程序调用时要指明窗体名称。标准模块是单独的程序单位,文件以“.bas”为扩展名。标准模块并不是必须存在的,当工程较大具有多重窗体时,往往需要标准模块,在标准模块中不能编写事件过程。标准模块的添加方法:从【工程】菜单中选择【添加模块】命令,在随后出现的【添加模块】对话框中新建一个模块。1.在标准模块中声明全局变量在标准模块中声明全局变量在标准模块的开始位置,并使用Global 或Public关键词对常量和变量进行声明,这样声明的变量和常量在整个工程中有效。2.在标准模块中声明模块级变量在标准模块中声明模块级变量 在标准模块中开始位置,使用Dim或Priva

25、te关键词对常量和变量进行声明,这样声明的变量和常量在本模块内有效。3.在标准模块中的公用过程在标准模块中的公用过程 在标准模块中,若定义的Sub过程和Function过程前加Private,则该过程只能被它所在标准模块的其他过程调用;若定义的Sub过程和Function过程前不加Private或加Public,则该过程可被任何程序调用。例9.5 再绘正弦曲线 设计一个工程,工程中包含窗体Form1、窗体zxqx和标准模块Module1,窗体Form1的标题为【LT9_5】,在窗体Form1上设计一个列表框和三命令按钮,命令按钮的标题分别为【计算】【下一个】【结束】。运行程序时,先单击【计算】

26、,计算出绘制正弦曲线所用数据并显示在列表框中,单击【下一个】隐藏本窗体显示窗体zxqx,单击【结束】能结束程序的运行。在窗体zxqx上设计一个图片框和两个命令按钮,窗体zxqx的标题为【正弦曲线】,命令按钮的标题分别为【绘制】【返回】。单击【绘制】利用Form1计算出的数据在图片框中绘制正弦曲线,单击【返回】隐藏本窗体显示窗体Form1。例9.6 共点力的合成 设计一个工程,工程中要包含3个窗体Form1、Form2、Form3和一个标准模块Module1。窗体Form1的标题为【LT9_6_1】,在窗体Form1上设计4个标签框、4个文本框和两个命令按钮,命令按钮的标题分别为【角度单位】和【

27、合成】。窗体Form2的标题为【LT9_6_2】,在窗体Form2上设计两个框架框、4个单选按钮和一个命令按钮,命令按钮的标题为【确定】。窗体Form3的标题为【LT9_6_3】,在窗体Form3上设计两个命令按钮,命令按钮的标题分别为【返回】和【连加】。运行程序时,先在窗体Form1输入两个力的大小和方向,单击【角度单位】弹出窗体Form2,在Form2中选择输入和输出力的角度单位,单击【确定】返回窗体Form1。单击【合成】显示窗体Form3,并在窗体上输出计算结果。若单击Form3的【返回】则表示不再与新力合成,若单击Form3的【连加】则表示要用合成的力与新的力再合成,此时,返回Form1要把合成力的大小和方向显示在F1所对应的文本框中,清空F2所对应的文本框,以便输入新力继续合成。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!