<< 点击显示目录 >> 主页 mappView帮助助手 > mapp View帮助信息 > 工程 > 定制的小工具 > 复合型小部件 > 编辑复合小部件(XML) > 复合式小组件事件 > 用户定义的事件User-defined event |
在mapp View 5.7及以后的版本中,可以定义可在复合部件的事件绑定中触发的事件。
这些是在元素<Event>中创建的,其中可以定义属性,而不是对小组件事件的映射。这可以通过复合小组件的事件绑定中的相应方法来调用。
一个事件被配置在元素<Event>中。
Attribute |
描述 |
Data type |
Required |
name |
事件的唯一名称,它显示在内容编辑器的属性窗口中,并选择了复合部件。 |
String |
Yes |
用户定义的事件的参数在一个<Argument>元素中定义。
在一个用户定义的事件元素中,也允许有多个参数元素。
Attribute |
说明 |
Data type |
Required |
name |
在事件绑定中触发时被指定的参数的名称。
方法 Trigger%Eventname% 必须在复合widget的事件绑定中使用以触发事件。 |
String |
Yes |
type |
参数的数据类型。 |
See the widget help documentation. |
Yes |
触发用户定义的事件的名称是在<TriggerAction>元素中定义的。
这个元素是可选的。如果没有定义, 必须使用Trigger%Eventname%方法 来触发该事件。
Attribute |
描述 |
Data type |
Required |
name |
用户定义的事件的唯一名称,它显示在内容编辑器的属性窗口中,并选择了复合部件。 这个名字也被用来触发事件。 |
String |
No |
下面的例子显示了如何创建用户定义的事件 UserError 并在复合部件的事件绑定中触发它。这个事件可以在复合部件实例中的HMI应用程序的事件绑定中被响应。这个例子响应了错误信息的触发,并在一个消息框中显示错误文本。
定义一个事件
<Events>
<Event name="UserError">
<Description>Event fired when internal error is detected</Description>
<Arguments>
<Argument name="message" type="String" />
</Arguments>
</Event>
</Events>
触发一个事件
<EventBindings>
<EventBinding id="Test">
<Source widgetRefId="ButtonMsgBox" xsi:type="widget.Event" event="Click" />
<EventHandler>
<Action>
<Target xsi:type="this.Action" >
<Method name="TriggerUserError" message="Message from UserEvent" />
</Target>
</Action>
</EventHandler>
</EventBinding>
</EventBindings>
在复合小部件的实例中对事件作出反应
<EventBinding id="Content1.Motor1.UserEvent">
<Source contentRefId="Content1" widgetRefId="Motor1" xsi:type="widgets.widgetlibrary_0.Motor.Event" event="UserError" />
<EventHandler>
<Action>
<Target xsi:type="clientSystem.Action" >
<Method xsi:type="clientSystem.Action.ShowMessageBox" type="OKCancel" message="=message" header="Error occured!" />
</Target>
</Action>
</EventHandler>
</EventBinding>