VAPS XT入门教程10.03:接口调用

系列索引:VAPS XT入门教程索引

上一篇:- VAPS XT入门教程10.02:源码编译

接口调用属于高级操作,得接触了一两年才会用到。

接口调用包括属性、事件、函数,位于vcls中。

本文只介绍简单操作,其余自己探索。

属性

子界面

先打开10.01中的工程,打开GO的属性

会发现属性无法编辑

只读

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

在属性标签页添加IsVisible属性

is visible

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用于捕捉鼠标事件

RectActiveArea

添加ATN触发与响应

ATN

添加成功后会自动在Implementation View添加TopState,这个就是状态机,ATN就是状态机扩展

当RectActiveArea_1捕获到鼠标的点击事件时,就触发testgo的evClicked事件

父界面

打开父界面画布

testfmt

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

添加事件触发与响应

状态机

捕获testgo的evClicked事件,然后输出字符串clicked

仿真运行,点击白色矩形

click

与设计期望相同。

总结

  • 数据流是连续的,事件是离散的
  • 不可跨级捕获事件

函数

打开14.04工程中testgo的声明,在Operations中添加新函数

添加新函数

添加函数对应的操作

实现函数

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

实现函数

点击仿真

实现函数

总结

  • 属性和事件可以作为输入
  • 函数可以作为输出

推广

下一篇:VAPS XT入门教程10.04:PFD

技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导

qq 672991841


VAPS XT入门教程10.03:接口调用
https://blog.jackeylea.com/vapsxt/introduction-of-vapsxt-properties/
作者
JackeyLea
发布于
2023年2月26日
许可协议