-- 作者:admin
-- 发布时间:2007-9-26 9:31:56
-- [学习]项目间参数的传递——通过“执行文件”和“窗口子项退出”事件传递
通过“公用数据”虽然能够解决项目间参数的传递,但是这种方法有一定的局限性,一旦所要传递的参数多且复杂时,“公用数据”就显得力不从心了。“执行文件”的方法‘执行’和“窗口”的方法‘退出系统’与事件‘子项退出’,可以传递更复杂的参数。
A.主项目向子项目传递参数 在主项目A中执行调用子项目B时,同时压进多个字符串参数,以供子项目B应用。创建主项目A、子项目B。构件摆放如图4所示
此主题相关图片如下:
 图4
事件设置: A项目单击“打开项目B”按钮时,事件设置如图5所示
此主题相关图片如下:
 图5 解释:在打开项目B时,同时向项目B传递了字符串“搭建之星”和布尔值“真”两个参数。参数的数量不限,可以压入任意多个参数。 那么,如何得到这两个参数呢?通过“事件设置”窗口——“取值”页——“系统”——“项目执行参数”。 在项目B中,通过两个“得到参数”得到从主项目A中传递的项目执行参数,事件设置如图6所示
此主题相关图片如下:
 图6 解释:这样单击“得到参数1”时,得到字符串“搭建之星”;单击“得到参数2”时,得到布尔值“真”。 注意:当取第一个参数时,不用指定参数序号。
B.子项目向主项目返回参数 上面讲过了,由主项目向子项目传递参数,还有另一种情况,就是当子项目关闭后,主项目需要得到子项目的返回值使用。 那么,如何得到子项目返回的参数呢?通过“事件设置”窗口——“取值”页——“系统”——“子项目返回值”。 创建主项目A、子项目B。构件摆放如图7所示。主项目A用于录入城市,子项目B列表了多个城市以供选择。在项目A中,单击“选择”按钮,打开项目B进行选择,单击“确认”或“关闭”按钮,退出项目B,返回到项目A,并把选择结果赋给编辑框。
此主题相关图片如下:
 图7
属性设置: 在A项目中,设置“条件选择”的条件1的值为“B”。条件选择构件用于判断哪个子项目关闭了。这里我们只用了一个子项目B举例,设若有“C、D、E……”个项目,那么条件选择的“条件X”属性将分别设置。
事件设置: A项目中,单击“选择”按钮时,得到B项目文件,追加执行。 B项目中,单击“确认”按钮时,事件设置如图8所示
此主题相关图片如下:
 图8 解释:窗口的方法“退出系统”,可以加载参数,这里压入2个参数。 B项目中,单击“关闭”按钮时,执行窗口1的方法“退出系统”。 A项目中,窗口1的“子项退出”时,事件设置如图9所示
此主题相关图片如下:
 图9 A项目中,当条件选择判断“等于条件1”时,事件设置如图10所示
此主题相关图片如下:
 图10
C.主项目向EXE子项目(由IPD生成)传递参数 如果主项目为IPD文件,子项目是由IPD文件生成的EXE文件,可不可以将主项目的参数传递给EXE文件呢?答案是肯定的。设置也很简单,假定,传递第一个参数是布尔值“真”,第二个参数为数字“10”。如图11所示。
此主题相关图片如下:
 图11 但是这种参数传递是不可逆的,即不能从EXE子项目(由IPD生成)文件向主项目返回参数。
|