首页 > 解决方案 > mql4 中的结构或类类型预期错误

问题描述

我正在使用带有面向对象编程模型的 mql4 开发 MetaTrader 指标。我创建了一个视图文件和一个控制器。我收到此错误:'drawPairNamesListForex' - 预期结构或类类型。'IndicatorDashboard' - 未声明的标识符。

这是控制器:

int OnInit()
  {
    View IndicatorDashboard = new View();
    ShowHideForexScreenerState=false;
    IndicatorDashboard.ButtonCreate(0,prefix1+"ShowHideForexScreenerState",0,shiftX+boxWidth*2,shiftY,boxWidth*2,boxHeight,CORNER_LEFT_UPPER,"FOREX",fontType,TaillePolice,ShowHide_Button_Text_Color,ShowHide_Button_Color,clrNONE,false,false,false,true);
    EventSetTimer(2);
    return(INIT_SUCCEEDED);
  }

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
  int i = 0;
  string name = "";
  int XIncrimenet = shiftX;
  int YIncriment  = shiftY+(boxHeight*1);
  if(sparam==prefix1+"ShowHideForexScreenerState" && !ShowHideForexScreenerState)
   {
      ShowHideForexScreenerState = true;
      IndicatorDashboard.drawPairNamesListForex();
   }

这是我从中获取“drawPairNamesListForex”方法的 View 类:

class View
  {
private:

public:
       void drawPairNamesListForex();
        View();
        ~View();
};

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+


View::View()
  {
  
  }

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+


View::~View()
  {
  
  }

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

void View::drawPairNamesListForex()
{
   int headerNumberInChart = 0;
   int XIncrimenet = shiftX;
   int YIncriement  = shiftY+boxHeight;
   int indiceTablePairs         = 0;
   string pairNameCleaned       = NULL;
   int sizeSuffix               = StringLen(suffixPairs);
   int sizePreffix              = StringLen(prefixForex);
   int sizeAllThePair           = 0;
   int posiitonSuffix           = 0;
 
 for(int i = 0; i < ArraySize(ForexPair); i++ )
   {   
         pairNameCleaned = ForexPair[i];
         if (  sizeSuffix > 0 )  
           {
            sizeAllThePair    = StringLen(pairNameCleaned);
            posiitonSuffix    = StringFind(pairNameCleaned,suffixPairs);
            pairNameCleaned   = StringSubstr(pairNameCleaned,0,posiitonSuffix);
           }
          if ( sizePreffix > 0 )
           {
            sizeAllThePair    = StringLen(pairNameCleaned);
            pairNameCleaned   = StringSubstr(pairNameCleaned,sizePreffix,sizeAllThePair);
           }
         this.ButtonCreate(0,prefixForex+"PairName"+IntegerToString(i),0,shiftX,YIncriement,boxWidth*2,boxHeight,CORNER_LEFT_UPPER,pairNameCleaned,fontType,TaillePolice,textHeaderColor,headerColor,clrNONE,false,false,false,true);
         YIncriement+=boxHeight;       
   }   
}



标签: c++mql4metatrader4mql5metatrader5

解决方案


推荐阅读