程序库: Easy Canvas - 页 7

 
Oleksii Chepurnyi:
也许在不同的情况下会有所不同 )我有一个重新制作的画布,它看起来像在闪烁。我想注意这一行,但没有时间 )

如果有问题,最好通知我。出于某种原因,每个人都保持沉默。对我来说,处理自己的创作更容易。

 
Nikolai Semko:

如果有问题,最好让我知道。出于某种原因,每个人都保持沉默。对我来说,处理自己的作品更容易些。

我告诉你,我本来想报告的,但没来得及--新版本出来后,问题已经解决了。
 
Oleksii Chepurnyi:
我告诉你,我想通知你,但我没有时间--新版本出来后,问题已经解决了。

啊,明白了:)))

 

版本 1.36
现在,它在测试器中的运行会更加正常。
但你应该明白,在测试器中,屏幕重绘事件无法正常工作。
这就是为什么在测试器模式下,最好在 OnCalculate 中进行重绘,强制调用 ChartChanged() 函数。

例如

int OnCalculate(const int rates_total,const int prev_calculated,const int begin,const double &price[]) {
   if (rates_total!=prev_calculated && MQLInfoInteger(MQL_TESTER)) {
      ChartChanged();    //  функция находится внутри iCanvas.mqh
      ReDrawMyCanvas();  // 你的画布
   }
   return(rates_total);
}
在测试 模式,结合更新的库试用该指标
附加的文件:
3DMa.mq5  12 kb
 

有一个巨大的要求。当然,如果可以的话)

这个数组:

class iCanvas : public CCanvas
  {
private:
   datetime          T[1];

例如,将其重命名为 Tm。

在一个项目 中,以现在的形式,它产生了这样的奇迹。

'[' - name expected     iCanvas.mqh     112     20
declaration of '_Period' hides predefined variable      iCanvas.mqh     112     38
'(' - name expected     iCanvas.mqh     112     46
variable '_Period' not used     iCanvas.mqh     112     38
'[' - name expected     iCanvas.mqh     113     22
'[' - name expected     iCanvas.mqh     114     47
declaration of '_Period' hides predefined variable      iCanvas.mqh     114     65
'(' - name expected     iCanvas.mqh     114     73
variable '_Period' not used     iCanvas.mqh     114     65
'[' - name expected     iCanvas.mqh     115     13

我找不到原因,试着重命名它,一切正常 )现在我每次在新版本中都会重命名它。

 
Oleksii Chepurnyi:

在现在的一个项目中,它就创造了这样的奇迹。

我找不到原因,试着重新命名它,一切正常。)现在我每次在新版本中都会重命名它。

你应该在这个项目 中查找 #define T ;)

 
Andrey Khatimlianskii:

我应该在这个项目中查找 #define T ;)

确切地说,没有 T,但有以 T 开头的 T。在扫描器中)

 
Oleksii Chepurnyi:

没有 T,但有以 T 开头的 T。这在扫描仪中可以找到)。

没有奇迹!

在错误重现的同时中断项目。定位地点,了解原因。

这是一个 的私有成员,不会影响任何东西。它更有可能受到其他定义的影响。

 
Andrey Khatimlianskii:

好吧,世上没有奇迹!

在错误重现时,中断项目。定位位置,了解原因所在。

这是一个 的私有成员,它不会影响任何东西。相反,是其他定义影响了它。

找到原因很有趣,但重命名更容易些。)

如果我没记错的话,这些小技巧出现在采用新编译规则的新版本中。

 
Oleksii Chepurnyi:

寻找原因很有趣,但改名更容易 )

如果我没记错的话,这些技巧出现在采用新编译规则的新版本中。

重命名并不难。有 Ctrl+H


但我同意 Andrei 的观点。查找#define T 或 #include <Canvas\iCanvas.mqh> 将其放在项目 的首位