搭建论坛《搭建之星》论坛经验交流 → [学习]项目间参数的传递——通过公用数据


  共有2596人关注过本帖树形打印

主题:[学习]项目间参数的传递——通过公用数据

帅哥哟,离线,有人找我吗?
admin
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建官方
等级:管理员 帖子:5504 积分:20561 威望:9 精华:5 注册:2002-4-5 17:08:42
[学习]项目间参数的传递——通过公用数据  发帖心情 Post By:2007-9-26 9:22:34

在一个大型项目中,不单项目间相互调用,有时还需要将一个项目中的值传递给另一个项目,这就是项目间参数的传递。有时子项目得到主项目传递的值,有时主项目得到子项目返回的值。
公用数据相当于全局变量,因此在一个项目中赋值给公用数据的变量A后,在与之关联的全体项目中都能得到该值。
以往采用“主——子”结构制作项目时往往会面临这样的难题,其它用户可以在项目所在目录下,直接打开子项目,使得主项目形同虚设。下面通过“公用数据”使他人只能通过主项目运行子项目,不能直接运行子项目。
创建主项目A、子项目B。构件摆放如图1所示

此主题相关图片如下:
按此在新窗口浏览图片
图1

属性设置:
在主项目A中,设置公用数据的只读属性值为“假”;变量A属性值为“123”。

事件设置:
A项目“进入子项目”鼠标单击,如图2所示

此主题相关图片如下:
按此在新窗口浏览图片
图2
B项目“创建窗口”时,如图3所示

此主题相关图片如下:
按此在新窗口浏览图片
图3
B项目比较判断“不同”时,执行窗口1的方法“退出系统”。

运行效果:
现在,如果直接运行子项目B,由于公用数据变量A的属性值为“空”,自定义字符串“123”与“空”比较,显然不同,所以在创建窗口以后,马上就退出了系统了,起到了保护子项目的效果;
如果先运行主项目A,由于公用数据变量A属性值为“123”,由此子项目B中的公用数据的变量A值亦为“123”,这样在单击了“进入子项目”按钮后,子项目创建窗口时,自定义字符“123”与公用数据变量A值“123”相同。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
admin
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建官方
等级:管理员 帖子:5504 积分:20561 威望:9 精华:5 注册:2002-4-5 17:08:42
[学习]项目间参数的传递——通过“执行文件”和“窗口子项退出”事件传递  发帖心情 Post By: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生成)文件向主项目返回参数。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[学习]项目间参数的传递——通过公用数据








签名