跳至内容

GetDouble

GetDouble

可供简便地访问 MQL5 API ObjectGetDouble() 函数来获取已分配到类实例中的图形对象的双精度属性值 (浮点或双精度类型)。函数有两个调用版本:

无需正确性验证即可获取一个属性值

double  GetDouble(
   ENUM_OBJECT_PROPERTY_DOUBLE  prop_id,         // 双精度属性标识符
   int                          modifier=-1      // 限定符
   ) const

参数

prop_id

[输入] 双精度图形属性 ID。

modifier=-1

[输入] 限定符 (索引) 双精度特征。

返回值

如果成功, 则返回双精度类型的属性值, 若出错, 则返回 EMPTY_VALUE。

验证处治的正确性再获取属性值

bool  GetDouble(
   ENUM_OBJECT_PROPERTY_DOUBLE  prop_id,      // 双精度属性标识符
   int                          modifier,     // 限定符
   double&                      value         // 链接到变量
   ) const

参数

prop_id

[输入] 双精度图形属性 ID。

modifier

[输入] 限定符 (索引) 双精度特征。

value

[输出] 容纳属性双精度值的变量引用。

返回值

true - 如果成功, false - 如果您未能获取一个双精度特征值。

例如:

//--- 例程 CChartObject::GetDouble
#include <ChartObjects\ChartObject.mqh>
//---
void OnStart()
  {
   CChartObject object;
   //---
   for(int i=0;i<object.LevelsCount();i++)
     {
      //--- 通过简便方法获取值
      printf("水平线 %d 值=%f",i,object.GetDouble(OBJPROP_LEVELVALUE,i));
      //--- 通过经典方法获取值
      double value;
      if(!object.SetDouble(OBJPROP_LEVELVALUE,i,value))
        {
         printf("获取双精度属性出错 %d",GetLastError());
         return;
        }
      else
         printf("水平线 %d 值=%f",i,value);
     }
  }