期货量化软件:赫兹量化中图形对象集合 - 管理属性修改
我们需要图形对象属性变化事件,并通过终端属性对话框来手动控制对象属性的变更。我们已经有了图形对象删除事件 — 该函数库跟踪终端图表上所有图形对象的数量,并为每个打开的图表提供事件标志 — 如果图表对象的数量减少,我们能够找出从图表中被删除对象的数量,并处理。我们需要图形对象移动事件来控制整个图形对象位置的变化,特别是它的各自锚点。手动创建对象时也会激活移动事件。 当我们单击图表为对象设置属性,但尚未释放鼠标按钮时,该对象必须已被创建,且函数库能够看到其相应类对象,并将其添加到集合当中。 并非所有对象属性值都会被正确设置。 鼠标按钮尚未释放,如果对象用到了多个锚点,那么我们就可以移动对象,或为其设置其余的锚点。 但是当我释放鼠标按钮时,如果所有对象锚点都已被设置,则会创建图形对象移动事件。 通过跟踪事件,并根据所创建图形对象的完整设置参数来更改已创建类对象的属性值,我们为新创建的对象的所有属性设置正确的值。更改对象名称一次性蕴含三个事件 — 移除对象、创建对象和更改对象属性。 通过跟踪这三个事件来检测现有对象之一的名称更改。 但我将使用更简单的方法。 当我们更改对象名称时, CHARTEVENT_OBJECT_CHANGE 事件总是最后处理。 鉴于所有终端对象都是按名称和图表 ID 来选择的,由此我们就可以检查图表上存在的对象中哪个没在集合列表之中。 然后我们在图表上找到对象名称,若集合 (1) 中不存在该类对象,则找不到相应命名的图表对象 (2),那么就将该名称添加到 (1) 中检测到的类对象集合列表之中。 这可能看起来很复杂。 然而,一切其实都很简单。
页:
[1]