記事"グラフィカルインタフェースXI:標準グラフィックライブラリの統合(ビルド16)"についてのディスカッション - ページ 7 12345678910 新しいコメント leonerd 2019.02.19 13:07 #61 再現しました。スライダーがパネルの一番上にあるとき、パネルのサイズを変更しなければなりません。その後、スライダーとパネル上のすべての要素がハングします。 削除済み 2019.08.12 16:55 #62 こんにちは 上の投稿の不具合の原因を見つけた方はいらっしゃいますか? "array out of range in 'WndEvents.mqh' (287,72)" というエラーが出ます。 Konstantin 2019.08.12 17:04 #63 Спартак Угланов:こんにちは上の投稿の不具合の原因を見つけた方はいらっしゃいますか?"array out of range in 'WndEvents.mqh' (287,72)" というエラーが出ます。 というエラーが出ます。 削除済み 2019.08.12 19:01 #64 Konstantin:そこにアウトオブバウンズのチェックを入れるだけだ。 面白いアイデアだが、どうやって? int available_elements_total=CWndContainer::AvailableElementsTotal(m_active_window_index); int ass = ArraySize(m_wnd[m_active_window_index].m_available_elements); Print("ass = ",ass," available_elements_total = ",available_elements_total); for(int e=0; e<available_elements_total; e++) { CElement *el=m_wnd[m_active_window_index].m_available_elements[e]; 12個の要素であれば、理論的には範囲外はないはずです。 (連載記事のTradePanelTestの例) Konstantin 2019.08.13 01:21 #65 Спартак Угланов: 面白いアイデアだが、どうやって?12個のエレメントがあれば、理論的には圏外はないはずです。(連載記事の TradePanelTest の例) もしエラーがあれば、それはエラーがあるということです。デバッガーを使って実行してみてください。 削除済み 2019.08.13 12:52 #66 Konstantin:デバッガーを使って実行するのが、そこで何が起こっているかを確認する一番確実な方法だ。 プロジェクトを 別の名前のフォルダに移動して、インジケーターファイルの名前を変えたら、エラーなしで動くようになったよ。 私は月曜日生まれです :O) Pavel Kolchin 2019.10.10 15:31 #67 Anatoli Kazharski: MetaQuotes 2019.10.11 11:21 #68 最近のビルドでは、先祖のメソッドが 子孫のメソッドでオーバーロードされている 場合のために、コンパイラにメッセージを追加しました: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version 例 struct SFoo { static void func(int) { Print(__FUNCSIG__); } }; struct SBar : SFoo { static void func(double) { Print(__FUNCSIG__); } }; void OnStart() { SBar::func(_Digits); // !!!はSFoo::func(int)と呼ばれる。 } この例では、SFooの祖先のfunc(int)関数がSBarの子孫クラスで呼び出されています。 下孫クラスにはfunc(double)関数しかなく、コンパイラは継承ツリーで適切なパラメータを持つ関数を見つけようとします。 つまり、MQL5コンパイラーは子孫のメソッドをオーバーライドする代わりにオーバーロードを実行するのです。言語開発の初期段階では、MQL5コンパイラのこの緩和は重要視されていませんでした。しかし、将来的に変更される可能性があるため、現在ではMQL5プログラムの開発者に対して、コードを考慮し修正するように明確な警告が出されています。 厳密に言えば、オーバーライドはもう少し広い概念です。オーバーロードとオーバーライドの違いについては、インターネット 。 Pavel Kolchin 2019.10.11 17:36 #69 MetaQuotes Software Corp.: 私は何も理解していませんが、とても興味深いです!コンパイラーはいくつかの関数に悪態をついています。 //+------------------------------------------------------------------+ //| 要素の可用性| //+------------------------------------------------------------------+ void CElement::IsAvailable(const bool state) { //--- すでに設定されている場合は終了 if(state==CElementBase::IsAvailable()) return; //--- セット CElementBase::IsAvailable(state); //--- その他の要素 int elements_total=ElementsTotal(); for(int i=0; i<elements_total; i++) m_elements[i].IsAvailable(state); //--- マウスの左ボタンをクリックする際の優先順位を設定する。 if(state) SetZorders(); else ResetZorders(); } Oleksii Chepurnyi 2019.10.11 17:50 #70 Pavel Kolchin:私は何も理解していませんが、とても興味深いです!コンパイラーはいくつかの関数に悪態をついています。 というのも bool IsAvailable(void) const { return(m_is_available); } に変えてみました。 virtual void Set Available(const bool state) { m_is_available=state; } bool IsAvailable(void) const { return(m_is_available); } それは大丈夫です ) そして、同じことを他のものについても行わなければならないだろう ) 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
再現しました。スライダーがパネルの一番上にあるとき、パネルのサイズを変更しなければなりません。その後、スライダーとパネル上のすべての要素がハングします。
こんにちは
上の投稿の不具合の原因を見つけた方はいらっしゃいますか?
"array out of range in 'WndEvents.mqh' (287,72)" というエラーが出ます。
こんにちは
上の投稿の不具合の原因を見つけた方はいらっしゃいますか?
"array out of range in 'WndEvents.mqh' (287,72)" というエラーが出ます。
というエラーが出ます。
そこにアウトオブバウンズのチェックを入れるだけだ。
面白いアイデアだが、どうやって?
12個の要素であれば、理論的には範囲外はないはずです。
(連載記事のTradePanelTestの例)
面白いアイデアだが、どうやって?
12個のエレメントがあれば、理論的には圏外はないはずです。
(連載記事の TradePanelTest の例)
もしエラーがあれば、それはエラーがあるということです。デバッガーを使って実行してみてください。
デバッガーを使って実行するのが、そこで何が起こっているかを確認する一番確実な方法だ。
プロジェクトを 別の名前のフォルダに移動して、インジケーターファイルの名前を変えたら、エラーなしで動くようになったよ。
私は月曜日生まれです :O)
最近のビルドでは、先祖のメソッドが 子孫のメソッドでオーバーロードされている 場合のために、コンパイラにメッセージを追加しました:
deprecated behavior, hidden method calling will be disabled in a future MQL compiler version例
この例では、SFooの祖先のfunc(int)関数がSBarの子孫クラスで呼び出されています。 下孫クラスにはfunc(double)関数しかなく、コンパイラは継承ツリーで適切なパラメータを持つ関数を見つけようとします。
つまり、MQL5コンパイラーは子孫のメソッドをオーバーライドする代わりにオーバーロードを実行するのです。言語開発の初期段階では、MQL5コンパイラのこの緩和は重要視されていませんでした。しかし、将来的に変更される可能性があるため、現在ではMQL5プログラムの開発者に対して、コードを考慮し修正するように明確な警告が出されています。
厳密に言えば、オーバーライドはもう少し広い概念です。オーバーロードとオーバーライドの違いについては、インターネット
。
私は何も理解していませんが、とても興味深いです!コンパイラーはいくつかの関数に悪態をついています。
私は何も理解していませんが、とても興味深いです!コンパイラーはいくつかの関数に悪態をついています。
というのも
に変えてみました。
それは大丈夫です )
そして、同じことを他のものについても行わなければならないだろう )