1、163将程序分割成较小的逻辑单元就可以简化程序设计任务,这些部件被称为子程序。 子程序可用于压缩重复任务或共享任务,例如,压缩频繁的计算处理等等。 子程序可使程序划分成离散的逻辑单元,每个单元都比无子程序的整个程序容易调试及理解; 一个应用程序中的子程序,往往不必修改或只需稍作改动,便可以成为另一个程序的子程序。本章主要介绍“易语言”子程序的调用方法、子程序参数的使用方法以及参数属性的相关使用方法。第 8 章 易语言的子程序本章学习内容:8.1 新建子程序 8.6 参数的参考属性8.2 调用子程序 8.7 子程序的返回值8.3 与事件子程序的区别 8.8 课后练习8.4 子程序参数 8.5 参
2、数的可空属性1648.1 新建子程序下面我们就开始新建第一个自定义子程序。方法十分简单,一步一步跟我来吧!将光标移到代码编辑行,右键单击在弹出菜单选择“新子程序” ,左键单击就可以新建子程序。首先在启动窗口添加一个按钮,默认名称为“按钮 1”。双击按钮 1进入代码编辑界面。另一种更快捷的方法是,在代码编辑面板获得焦点时,同时按下“Ctrl 键”和“N键” ,也可以新建子程序,而不用弹出右键菜单了。新建子程序的默认名称为“子程序 1”,依此类推。第三种方法,到主菜单上。选择“插入” ,在弹出菜单中选择“插入” ,在弹出菜单中选择“新子程序”也可新建子程序。1658.2 调用子程序注意:在同一个程
3、序集中,子程序名尽量不能重复。特别在修改名称的时候。“子程序 1” 已经存在,当另一个子程序被修改成“子程序 1”时, “易语言”只会调用第一个创建的子程序。如果这个子程序被删除, “易语言”会按子程序的创建顺序进行关联同名的子程序。新建的子程序没有参数和变量,这需要操作者自行添加和自定义参数的数量以及每个参数的类型、可空、参考、数组属性。特别应该注意的是,每个新建的子程序都不会被“易语言”或其它子程序自动调用,下面将讲解如何调用子程序。前一节中讲了如何建立子程序,下面演示如何调用一个简单的子程序。166在“子程序 1”中添加代码 信息框(“你好!我是信息框。”,#信息图标, ) 在按钮1 被
4、单击事件子程序中添加程序代码 “ 子程序1() ”或直接复制名称,将其粘贴过来。在“按钮 2”事件子程序中添加代码 子程序 1() 。同一个子程序可以被多次调用。子程序可以在其它事件子程序和新建子程序中多次被调用,也可以被其它程序集的事件子程序和新建子程序调用,就像单击“按钮 1”,“_按钮 1_被单击”被调用。要注意的是,子程序只能在本程序中使用。每次调用子程序时,子程序中的所有语句都将被从第一条开始顺序执行,当执行到子程序尾部或者遇到“返回()”命令时即返回到调用此子程序语句的下一条语句处。按“F5 键”运行程序,分别单击“按钮 1”和“按钮2”,都能弹出“子程序 1”里的信息框。1678
5、.3 与事件子程序的区别把“子程序 1”修改为“消息框子程序” 。上节中提到了子程序名称的问题,这里我们还要提一个小建议。当要修改一个子程序名称时,应该直接到这个子程序的位置处进行修改。这样可以使其它调用处的名称一同被修改。这里的“子程序 1”同时被自动改为信息框子程序 。子程序必须由其它事件子程序调用。子程序的调用方法与命令的调用方法完全一致。所谓事件子程序,就是“易语言”组件自带的触发事件。如:“_按钮 1_被单击”。虽然新建子程序和事件子程序的调用方法都一样,但它们之间也有一些不同之处。1688.4 子程序参数光标选中子程序名称,按“Enter 键”生成一个参数。这是按钮1 被单击子程序
6、的原型,没有参数。添加参数名称并设置类型。最后按“F5 键”运行程序,单击“按钮1”,信息框不见了。 信息框看不到的原因是“_按钮 1_被单击”子程序参数结构被改变,“易语言”就会把它当作新建子程序,和“按钮 1”没有任何关系了,而新建子程序可以任意的添加参数。参数和变量的使用方法一样,可以使用赋值语句在参数内临时存 储数据。参数有“名字”(用来引用参数所包含内容的词)、“数据类型”(确定参数能够存储数据的种类)、“可空”和“参考”。参数只可以在被定义的子程序中使用,相当于局部变量。169把 8.3 中“_ 按钮 1_被单击”事件子程序的“参数1”删除。在“消息框子程序”添加两个文本型参数“参
7、数 1”和“参数 2”。参数的“类型”属性可为空。如果空,默认为整数型。在引用子程序处,将光标移到括号中,在括号内添加“, ”号。看到了吗?多了个“”号,我们可以将它展开。用Alt + 右光标键展开。它们是互相对应的,在上面添加文本型数据“ 易语言” ,当程序运行时,下面“参数 1”保存的数据就是“易语言” 。标签的标题在此处设置。170接下来我们在程序中为子程序提供具体的参数数据。用Ctrl+Tab键切换到界面设置区,在窗体上添加两个标签和两个编辑框,并将编辑框的标题设置为“输入 123”,提示用户。这是前面提到的“按钮 1”,下面的是“按钮2”。切换到代码编辑面板,在子程序调用处,分别添加
8、数据(编辑框提供的文本型数据) 。修改“消息框子程序”代码。按“F5 键”运行程序,在“编辑框 1”和“编辑框 2”中输入“123” ,单击“按钮 1”,第一个信息框被弹出。你也可以输入其它的数据,看一看效果。1718.5 参数的可空属性子程序如需要接收参数数据,必须先在子程序定义表中参数表部分定义与欲接收数据数目相同的参数。调用子程序时所传递过来的数据将被顺序地填入对应的参数中。如果所传递过来的数据与对应位置处的参数数据类型不一致,在可以互相转换时,系统将自动进行转换,否则会产生运行时错误。1、子程序可以接收参数,所定义的各参数的数据类型及参数数目决定了该子程序所能够接收的参数数据的类型和数
9、目,具有参数的子程序在被调用时必须提供与参数数目相同的数据。如上面的第 2 步在调用子程序的同时就把编辑框 1.内容和编辑框 2.内容作为参数数据对应地传递到了编辑框子程序内的参数 1、参数 2 参数内;2、参数仅能在子程序内部使用,使用方法等同于变量。参数可空,从表面上就能理解它的意思。就是在调用子程序时,可以不提供在子程序中被定义成可空的参数任何数据。看看下面。1728.6 参数的参考属性如果本属性为真,那么在调用本子程序时,调用方可以不为此位置处的参数传递数据。主要用作支持具有默认值的参数,也可以在为子程序添加了新参数后又不想去更改以前调用此子程序的语句时使用。将“参数 2”可空属性选中。方法是,选中单击或选中按“空格”键。把调用处的“参数 2”删除。参考就是在调用一个子程序之前设置一个提供参数数据的变量的值,在子程序中相对应的参数值被改变,调用后这个变量值同时被改变。