ライブラリ: イージーキャンバス - ページ 7

 
Oleksii Chepurnyi:
シチュエーションによって違うのかもしれない。)キャンバスを作り直したのですが、点滅しているように見えました。このラインに注意を払いたかったのですが、時間がありませんでした )

問題があれば、私に知らせてほしい。みんななぜか黙っている。自分で作ったものの方が扱いやすい。

 
Nikolai Semko:

何か問題があるなら、私に知らせてほしい。なぜかみんな黙っている。自分で作ったものの方が扱いやすいからね。

報告したかったんだけど、時間がなかったんだ。新しいバージョンが出て、すでに修正されていたからね。
 
Oleksii Chepurnyi:
知らせたかったんだけど、時間がなくて......新しいバージョンが出て、そこですでに修正されていたんだ。

ああ、わかったよ :)))

 

version 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に名前を変えてください。

今のような形のプロジェクトの 1つで、それはそのような奇跡を生み出します。

'[' - 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


しかし、私はアンドレイに同意する。define T または #include <CanvasiCanvas.mqh> を探し、プロジェクトの 最初に置く。