跳至内容

ObjectsDeleteAll

ObjectsDeleteAll

从指定的图表、指定的图表子窗口中删除所有指定类型的对象。

int  ObjectsDeleteAll(
   long   chart_id,           // chart ID
   int    sub_window=EMPTY,   // window index
   int    object_type=EMPTY   // object type
   );

从指定的图表子窗口中删除所有指定类型的对象。

int  ObjectsDeleteAll(
   int    sub_window=EMPTY,   // window index
   int    object_type=EMPTY   // object type
   );

使用对象名称的前缀来删除所有指定类型的对象。

int  ObjectsDeleteAll(
   long           chart_id,   // chart ID
   const string     prefix,   // prefix in object name
   int    sub_window=EMPTY,   // window index
   int    object_type=EMPTY   // object type
   );

参数

chart_id

[in] 图表标识符。

prefix

[in] 对象名称中的前缀。所有名称以该字符集开头的对象将从图表中删除。您可以指定前缀为’name’或’name*’——两种变体效果相同。如果指定空字符串作为前缀,则将所有可能的名称的对象都将被删除。

sub_window=EMPTY

[in] 图表窗口的编号。必须大于或等于-1(-1表示所有子窗口,0表示主图表窗口)且小于WindowsTotal().

object_type=EMPTY

[in] 对象的类型。值可以是ENUM_OBJECT枚举值之一。EMPTY(-1)表示所有类型。

返回值

返回被删除的对象数量。要了解更多关于错误的信息,请调用GetLastError().

注意

图表子窗口的索引(如果图表有带有指示器的子窗口)从1开始。主图表窗口的索引始终等于0。如果窗口没有索引,或者其索引为-1,则所有对象将从整个图表中删除。如果类型参数的值为-1或此参数不可用,则将从指定子窗口中删除所有对象。

当没有指定图表ID时,该函数应直接作用于当前图表。在这种情况下,返回值表示函数执行的结果。

如果指定了当前图表之外的图表ID,返回值仅告知命令是否已添加到该图表的队列中。在这种情况下,使用异步调用,这意味着函数不会等待添加到另一个图表队列中的命令的执行。相反,它会立即返回控制。

要检查在当前图表之外的图表上命令执行的结果,可以使用检查指定对象属性的函数。然而,您应该记住,此类函数被添加到该图表的队列末尾并等待执行结果,因此可能会耗时较长。在处理图表上的大量对象时,应考虑此特性。

示例:

ObjectsDeleteAll(2, OBJ_HLINE); // delete all horizontal lines from the 2nd subwindow
  ObjectsDeleteAll(2);            // delete all objects from the 2nd subwindow
  ObjectsDeleteAll();             // delete all objects from chart.
最后更新于