ライブラリ: イージーキャンバス - ページ 8 123456789101112131415...19 新しいコメント Oleksii Chepurnyi 2020.02.15 08:30 #71 Nikolai Semko:名前の変更は難しくない。Ctrl+Hしかし、私はアンドレイに同意する。define T または #include <CanvasiCanvas.mqh> を探し、プロジェクトの最初に置く。 ファイルの検索は自動的に行われます)MQL5フォルダ内のどのファイルにも#define Tは ありません。 TradeTransactionshttps://www.mql5.com/ja/code/22166 の TypeToBytes.mqh にある何かとコンフリクトしていることがわかりました。 このライブラリは長い間変更されていないため、新しいビルドで何らかの技術革新やバグが発生した可能性が高いです。) fxsaber 2020.02.15 09:09 #72 Oleksii Chepurnyi:TradeTransactions(https://www.mql5.com/ja/code/22166)のTypeToBytes.mqhの何かがコンフリクトしていることがわかった。このライブラリは長い間変更されていないので、おそらく新しいビルドで新しい機能やバグが現れたのでしょう。) これはコンパイラのバグです。 #include <TypeToBytes.mqh> //https://www.mql5.com/ja/code/16282 class CLASS { void Method() { datetime T[1]; T[0] = 0; // '[' - 期待される名前 }; }; void OnStart() { datetime T[1]; T[0] = 0; // OK } Nikolai Semko 2020.02.15 13:01 #73 了解。ありがとう。もちろん、修正するよ。 Andrey Khatimlianskii 2020.02.16 22:49 #74 やった、見つけたよ!) fxsaber さんは、自動的な何かで「自分の」キーワードのブランチを追跡しているのですか、それとも定期的にすべてのブランチをスクロールしているのですか?あなたは "的を絞った "質問にはとても素早く答えてくれますね。 fxsaber 2020.02.17 00:43 #75 Andrey Khatimlianskii:fxsaberさん、あなたは「あなたの」キーワードのブランチを自動的な何かで追跡しているのですか、それとも定期的にすべてのブランチをスクロールしているのですか?あなたは "的を絞った "質問には素早く答えていますね。 それは偶然です。 Nikolai Semko 2020.02.17 05:15 #76 このコミュニティの有名なプログラマからこんな質問を受けました: - なぜテスター モードでは、オブジェクト上に作成されたパネルが、カンヴァス上に実現されたパネルよりも桁違いに速く再描画されるのですか。 分析した結果、この問題の理由と解決策がわかりました。 オブジェクトの再描画は画面全体の再描画と一緒に行われ、テスターの画面は毎秒 30 フレーム以上の頻度で再描画されないということです。 オブジェクトは最終的には同じキャンバス(内部)ですが、オブジェクトのプロパティを 変更すると、オブジェクトのキャンバスは形成されず(再計算されず)、画面の更新(ChartRedraw)の瞬間にのみ形成されます。 パネルが目盛りごとに変化すると仮定しましょう。この場合、デフォルトのテスターでは、tick ごとに canvas が再計算されますが、テスターでの再描画の頻度はまだ ~30 ミリ秒(~30 フレーム/秒)以下です。 言い換えれば、キャンバスは実際に画面に表示されるよりもはるかに頻繁に再計算されるため、リソースの過度の消費が発生します。 この問題の解決策は、再計算とカンヴァスの再描画の頻度を、コンピュータ時間の 15 ~ 30 ミリ秒に 1 回以下に制御することです。 たとえば、次のようにします: void OnTick() { static uint lastCalc=0; uint cur=GetTickCount(); if (cur-lastCalc>15) { ReDrawMyCanvas(); lastCalc=cur; } } Oleksii Chepurnyi 2020.11.09 14:43 #77 こんにちは。 if(width==0) {width=W.Width; FullWinCanvW=true; Xpos=0;} else FullWinCanvW=false; if(height==0){height=W.height[SubWin]; FullWinCanvH=true; Ypos=0;} else FullWinCanvH=false; Name+=IntegerToString(rand())+IntegerToString(rand()); Handle=ChartGetInteger(chart_id,CHART_WINDOW_HANDLE,SubWin); if(!CreateBitmapLabel(chart_id,SubWin,Name,Xpos,Ypos,width,height,formatCF)) Print("Error creating canvas: ",GetLastError()); コンストラクタのこの行、なぜ? CCanvas は、rand も含めて、名前に多くのものを追加します。時々、名前が長すぎて許容される長さを超えてしまいます ) Nikolai Semko 2020.11.09 19:45 #78 Oleksii Chepurnyi:こんにちは。コンストラクタのこの行、なぜですか? CCanvas は、rand も含めて、名前に多くのものを追加します。時々、名前が長すぎて許容される長さを超えてしまう ) iCanvas の私のバージョンではすでに修正済みですが、ここでは忘れていたようです。 Nikolai Semko 2020.11.10 02:01 #79 Version 1.40 いくつかのバグを修正しました。 特に、iCanvasオブジェクトが複数の場合、自動的に縦方向にリサイズされないバグを修正しました。 Nikolai Semko 2020.11.10 02:05 #80 最終バージョン1.40 ファイル: iCanvas.mqh 48 kb 123456789101112131415...19 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
名前の変更は難しくない。Ctrl+H
しかし、私はアンドレイに同意する。define T または #include <CanvasiCanvas.mqh> を探し、プロジェクトの最初に置く。
ファイルの検索は自動的に行われます)MQL5フォルダ内のどのファイルにも#define Tは ありません。
TradeTransactionshttps://www.mql5.com/ja/code/22166 の TypeToBytes.mqh にある何かとコンフリクトしていることがわかりました。
このライブラリは長い間変更されていないため、新しいビルドで何らかの技術革新やバグが発生した可能性が高いです。)
TradeTransactions(https://www.mql5.com/ja/code/22166)のTypeToBytes.mqhの何かがコンフリクトしていることがわかった。
このライブラリは長い間変更されていないので、おそらく新しいビルドで新しい機能やバグが現れたのでしょう。)
これはコンパイラのバグです。
やった、見つけたよ!)
fxsaber さんは、自動的な何かで「自分の」キーワードのブランチを追跡しているのですか、それとも定期的にすべてのブランチをスクロールしているのですか?あなたは "的を絞った "質問にはとても素早く答えてくれますね。
fxsaberさん、あなたは「あなたの」キーワードのブランチを自動的な何かで追跡しているのですか、それとも定期的にすべてのブランチをスクロールしているのですか?あなたは "的を絞った "質問には素早く答えていますね。
それは偶然です。
このコミュニティの有名なプログラマからこんな質問を受けました:
- なぜテスター モードでは、オブジェクト上に作成されたパネルが、カンヴァス上に実現されたパネルよりも桁違いに速く再描画されるのですか。
分析した結果、この問題の理由と解決策がわかりました。
オブジェクトの再描画は画面全体の再描画と一緒に行われ、テスターの画面は毎秒 30 フレーム以上の頻度で再描画されないということです。
オブジェクトは最終的には同じキャンバス(内部)ですが、オブジェクトのプロパティを 変更すると、オブジェクトのキャンバスは形成されず(再計算されず)、画面の更新(ChartRedraw)の瞬間にのみ形成されます。
パネルが目盛りごとに変化すると仮定しましょう。この場合、デフォルトのテスターでは、tick ごとに canvas が再計算されますが、テスターでの再描画の頻度はまだ ~30 ミリ秒(~30 フレーム/秒)以下です。
言い換えれば、キャンバスは実際に画面に表示されるよりもはるかに頻繁に再計算されるため、リソースの過度の消費が発生します。
この問題の解決策は、再計算とカンヴァスの再描画の頻度を、コンピュータ時間の 15 ~ 30 ミリ秒に 1 回以下に制御することです。
たとえば、次のようにします:
こんにちは。
コンストラクタのこの行、なぜ?
CCanvas は、rand も含めて、名前に多くのものを追加します。時々、名前が長すぎて許容される長さを超えてしまいます )
こんにちは。
コンストラクタのこの行、なぜですか?
CCanvas は、rand も含めて、名前に多くのものを追加します。時々、名前が長すぎて許容される長さを超えてしまう )
iCanvas の私のバージョンではすでに修正済みですが、ここでは忘れていたようです。
いくつかのバグを修正しました。
特に、iCanvasオブジェクトが複数の場合、自動的に縦方向にリサイズされないバグを修正しました。