这是“_按钮1_被单击”子程序的原型,没有参数。 ①光标选中子程序名称,按Enter键添加一个参数。 ②输入参数名称并设置类型。最后按F5键运行程序,单击“按钮1”,信息框不见了。 信息框看不到的原因是“_按钮1_被单击”子程序参数结构被改变,易语言就会把它当作新建的子程序,和“按钮1”没有任何联系了,而新建子程序可以任意的添加参数。请大家自行总结一下新建的子程序和事件子程序的区别。 8.4 子程序参数
参数和变量的使用方法一样,可以使用赋值语句在参数内临时存储数据。参数有参数名(用来在程序中引用一个参数)、数据类型(确定参数能够存储数据的种类)以及“可空”和“参考”等属性。参数只能在定义它的子程序中使用,相当于局部变量。 168
①把8.3中“_ 按钮1_被单击”事件子程序的“参数1”删除。 ②在“信息框子程序”添加两个文本型参数“参数1”和“参数2”。 参数的“类型”属性可为空。如果空,默认为整数型。 ③按F5键,程序无法运行,在输出面板中可以看到出错提示。这就说明我们还要在调用上述子程序时提供具体的参数。 ④用光标选中此行并双击,在括号内添加“,”号,按Enter键。
⑤看到了吗?调用子程序的命令前多了个“+”号,我们可以将它展开。 展开的方 法:直接双击或用键盘上的 右光标键。 169
参数提示和实际参数的内容是互相对应的,在上面添加文本型数据“易语言”,当程序运行时,下面“参数1”保存的数据就是“易语言”。 ①接下来我们在程序中为子程序提供具体的参数数据。用“Ctrl+Tab”组合键切换到界面设计状态,在窗体上添加两个标签和两个编辑框,并将标签的标题属性设置为“输入123”,提示用户。 这是前面提到的“按钮1”,下面的是“按钮2”。 标签的标题在此处设置。 ②切换到代码编辑状态,在子程序调用处,分别为两个参数提供数据(编辑框提供的文本型数据)。
170
③修改“信息框子程序”代码。 ④按F5键运行程序,在“编辑框1”和“编辑框2”中输入“123”,单击“按钮1”,第一个信息框被弹出。你也可以输入其它的数据,看一看效果。 子程序如需要接收参数数据,必须先在子程序定义处的参数表部分定义所需的参数。调用有参数的子程序时所传递过来的数据将被顺序地填入对应的参数中。如果传递过来的数据与对应位置处的参数数据类型不一致,在可以互相转换时,系统将自动将传递过来的数据转换成对应参数的数据类型后再赋值给该参数;如果不能转换,就会产生运行时错误。如上面的第 2 步在调用子程序的同时就把“编辑框1.内容”和“编辑框2.内容”作为参数数据对应地传递到了编辑框子程序内的两个参数“参数1”和“参数2”内。 171
8.5 参数的可空属性
参数可空,就是说该参数是可选的,从字面上就能理解它的意思。就是在调用子程序时,可以不提供该参数所需的数据。看看下面的例子。 ①将“参数2”可空属性选中。方法是,选中该处单元格再单击或选中后按空格键。 ②把调用处的“参数2”删除。 如果某个参数的“可空”属性为真,那么在调用本子程序时,可以不给此参数传递数据。可空的参数主要用于支持具有默认值的参数;另外,如果给某个子程序添加了新参数却又不想去更改以前调用此子程序的代码,那么只要将新参数设置为可空参数就行了。 172