用户定义的事件User-defined event

<< 点击显示目录 >>

主页  mappView帮助助手 > mapp View帮助信息 > 工程 > 定制的小工具 > 复合型小部件 > 编辑复合小部件(XML) > 复合式小组件事件 >

用户定义的事件User-defined event

在mapp View 5.7及以后的版本中,可以定义可在复合部件的事件绑定中触发的事件。

这些是在元素<Event>中创建的,其中可以定义属性,而不是对小组件事件的映射。这可以通过复合小组件的事件绑定中的相应方法来调用。

Element "Event"

一个事件被配置在元素<Event>中。

Attribute

描述

Data type

Required

name

事件的唯一名称,它显示在内容编辑器的属性窗口中,并选择了复合部件。

String

Yes

Element "Argument"

用户定义的事件的参数在一个<Argument>元素中定义。

在一个用户定义的事件元素中,也允许有多个参数元素。

Attribute

说明

Data type

Required

name

在事件绑定中触发时被指定的参数的名称。

 

方法 Trigger%Eventname% 必须在复合widget的事件绑定中使用以触发事件。

String

Yes

type

参数的数据类型。

See the widget help documentation.

Yes

Element TriggerAction

触发用户定义的事件的名称是在<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>