管理对象状态
在对象的通用特性中,有多个特性用于控制对象的状态。所有这类特性均为布尔类型,这意味着它们可以被启用 (true) 或禁用 (false),因此需要使用 ObjectGetInteger 和 ObjectSetInteger 函数。
标识符 |
说明 |
---|---|
OBJPROP_HIDDEN |
禁用在相关对话框的对象列表中显示图形对象的名称(可通过图表上下文菜单调用或按 Ctrl+B 触发该对话框)。 |
OBJPROP_SELECTED |
对象选择 |
OBJPROP_SELECTABLE |
对象可选性 |
如果 OBJPROP_HIDDEN 的值为true,则允许从用户列表中隐藏不必要的对象。默认情况下,对于显示日历事件、交易历史的对象以及通过 MQL 程序创建的对象,会设置为true。如果要查看此类图形对象并访问其特性,请在 Object List对话框中按下 All 按钮。
列表中隐藏的对象在图表上仍保持可见。要在不删除对象的情况下将对象从图表中隐藏,可使用 对象在时间范围下文中的可见性 设置。
如果对象的 OBJPROP_SELECTABLE 的值为false,用户将无法选择和修改这些对象的特性。通过编程方式创建的对象默认禁止被选中。正如我们在前面章节的 ObjectCornerLabel.mq5和 ObjectAnchorLabel.mq5 脚本中所见,必须显式将 OBJPROP_SELECTABLE 设置为true,才能解锁包含 OBJPROP_SELECTED 特性的能力。我们正是通过这种方式来高亮显示对象上的锚点。
通常,仅当 MQL 程序的对象用作控件时,这些程序才允许选择这些对象。例如,具有预定义名称的趋势线(用户可随意移动),可能意味着当价格突破该趋势线时发送交易订单的条件。