VAPS XT入门教程10.03:接口调用
系列索引:VAPS XT入门教程索引
上一篇:- VAPS XT入门教程10.02:源码编译
接口调用属于高级操作,得接触了一两年才会用到。
接口调用包括属性、事件、函数,位于vcls中。
本文只介绍简单操作,其余自己探索。
属性
子界面
先打开10.01中的工程,打开GO的属性
会发现属性无法编辑

那是因为testfmt打开了,而testfmt中使用了testgo,为了防止不可控的异常,testgo的属性无法编辑,把相关界面关闭即可。
在属性标签页添加IsVisible属性

Type从标准类型中选择,从属性名可以看出是控制是否隐藏所以bool就可以了。
Access即访问权限,Input表示testgo内部控件可以使用这个属性,Output表示父界面可以调用(读取)这个属性值
打开实现页面,在Data Flow界面添加数据流

.表示使用当前页面的属性
可以看到编辑器自动提示可用属性,只有两个,Position是默认的,IsVisible是刚刚添加的。

数据从Source流入Destination
输入目标的界面,就会自动提示可用属性
可以看到和右侧属性中一样
点击右侧的Add按钮添加至工程中

添加成功

如果数据流有错,会不添加并报错。
添加成功的数据流显示灰色,但是仍然可以通过双击来编辑。
此数据流的意思是把属性IsVisible的状态值同步给Rect2Pnt_1的属性IsVisible状态
父界面
打开testfmt实现页面
在界面中添加一个按钮,按钮就使用官方提供的控件,因为本文的重点是属性调用

然后把按钮的状态输出给testgo

仿真运行
默认状态

点击一次

此时数据流是无法编辑的,双击也不行
鼠标点击Button_1控件,可以看到当前按钮的各个属性的值

总结
- 多个Source可以流向同一个Destination,慢慢想为什么
- 父界面可以调用子界面的属性,但是无法调用子界面的子界面的属性
事件
子界面
还是10.01的工程
打开Properties右侧的标签页,添加事件evClicked,不传递参数

打开实现画布,向画布中添加RectActiveArea用于捕捉鼠标事件

添加ATN触发与响应

添加成功后会自动在Implementation View添加TopState,这个就是状态机,ATN就是状态机扩展
当RectActiveArea_1捕获到鼠标的点击事件时,就触发testgo的evClicked事件
父界面
打开父界面画布

仔细看,这个矩形四边有一圈红色点划线,这个是鼠标捕捉事件的标志。
添加事件触发与响应

捕获testgo的evClicked事件,然后输出字符串clicked
仿真运行,点击白色矩形

与设计期望相同。
总结
- 数据流是连续的,事件是离散的
- 不可跨级捕获事件
函数
打开14.04工程中testgo的声明,在Operations中添加新函数

添加函数对应的操作

仿照14.06的方式添加一个按钮,以及按钮点击事件

点击仿真

总结
- 属性和事件可以作为输入
- 函数可以作为输出
推广
技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导


