記事"グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2)"についてのディスカッション - ページ 4

 

http://prntscr.com/tmjkm3


こんにちは。私はMT4で仕事をしているので、残念ながらMT4のこの最後のバージョンのストックを持っています。何をやっても直らないバグがあります。上の写真にあるように、キャプションの「近く」に水平線が あります。その水平線が選択されている場合、キャプションの内側をクリックすると、キャプションの真ん中にジャンプし、キャプションと一緒に動き出します。また、ウィンドウの背景のどこかに選択されている水平線がある場合、その線の近くでウィンドウ内をクリックしてドラッグすると、線をドラッグし始めます。これは、線だけでなく、チャート上のすべてのオブジェクトに対して起こる。


つまり、パネルとキャプションがマウス・イベントを "捕捉 "せず、その下のオブジェクトに通過させているのです。どうすればこの問題を解決できるでしょうか?

どなたか教えてください。

Screenshot
Screenshot
  • prnt.sc
Captured with Lightshot
 

こんにちは、
この記事はmql4 EasyAndFastGUIの最新アップデートだと理解していますか?
"expresion not boolen "の警告を修正する方法を教えてください。


 
Nauris Zukas #:

こんにちは、
この記事はmql4 EasyAndFastGUIの最新アップデートだと理解していますか?
"expresion not boolen "の警告を修正する方法を教えてください。


m_show_flagsは 何型ですか?もしboolで ないなら、次のようにします:return((bool)m_show_flags);

 
Artyom Trishkin #:

m_show_flagsの 型は?もしboolで なければ、return((bool)m_show_flags)を返します;

uint m_show_flagsです。boolに変更すれば警告は消えますが、チェーンのどこかの関数にダメージを与えないとも限らないので、アドバイスの通りにしてみます。ありがとうございました。

 
Nauris Zukas #:

uint m_show_flags。これをboolに変更すれば警告は消えますが、チェーンのどこかの関数にダメージを与えないとも限らないので、アドバイスの通りにしてみます。ありがとうございました。

これはフラグの集合なので、boolに 変更することはできません。したがって、変数の値は1より大きくなる可能性があります。その値が0であれば、bool 型の変数の値falseと 等しくなります。したがって、bool 型に戻した結果がbool 型に変換されるとき、0以外の変数の値はtrueを 与える。逆に、0以外はfalseに なります。

そして、このメソッドは(その名前から判断して)オブジェクトの可視性のフラグを返すので、ゼロ以外の値では、このメソッドはオブジェクトがある時間枠で可視であるというフラグを返します。変数の値がゼロのときだけ、オブジェクトがすべての時間枠で非表示であることが確実にわかるのです。

このメソッドの目的について、私は間違っているかもしれない。しかし、私はこのフラグのセットであるという事実から推測した:

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Видимость объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

ところで、上記を踏まえて、メソッドをこのように書くことができる:

bool ShowFlags(void) const { return m_show_flags!=OBJ_NO_PERIODS; }

そうすれば、ブール型でない変数の返される型をブール型の 値に変換する必要がなくなります。

しかし、それはあなたの選択です - 違いはありません。

 
Artyom Trishkin bool型の 値に変換する必要がなくなります。

しかし、それはあなたの選択です - 違いはありません。

Artem、私の意見では、関数の型をuintに変更した方がいいと思う。

uint ShowFlags(void) const { return m_show_flags; }

そうすれば、この関数から受け取った値によって、特定のTFでのオブジェクトの可視性をチェックできるようになります。結局のところ、これは特定の値ではなく、フラグのセットなのです。

 
Alexey Viktorov #:

アーテム、私の意見では、関数の型をuintに変更した方がいいと思う。

そうすれば、この関数から受け取った値によって、特定のTFでのオブジェクトの可視性をチェックすることが可能になります。結局のところ、これは特定の値ではなく、フラグのセットなのですから...。

このメソッドの意味はわからない。おそらく、それはフラグであろう。そして、結果から必要なフラグを偽造することは、ライブラリ・ユーザーの生活を複雑にする。

 
Artyom Trishkin #:

このメソッドの意味はわからない。おそらくフラグであろう。そして、その結果から必要なフラグを偽造することは、ライブラリー・ユーザーの生活を複雑にしている。

初心者の私が、オブジェクトがTF H1のチャート上に表示されているかどうかに興味があり、このメソッドを使用して、オブジェクトがTF M15上に表示されていることを得たとします。

パラメータを追加して、指定されたTFの可視性をチェックするのがよいかもしれません。あるいは他の方法かもしれませんが、この形では私にはよくわかりません。

 
Alexey Viktorov #:

また、初心者の私が、TF H1のチャート上にオブジェクトが表示されているかどうかに興味があり、この方法を使用して、オブジェクトがTF M15上に表示されていることを得たとすると、それぞれ本当ですが、チャート上には表示されていません。

パラメータを追加して、指定されたTFの可視性をチェックするのがよいかもしれません。あるいは他の方法があるのかもしれませんが、この形では私にはよくわかりません。

アナトリーに聞いてみたら?あるいは、議論されているメソッドが何に使われているのか、あなたの言うニーズにはどれを使えばいいのかが書かれている記事を読んでください。

この会話は、あるメソッドと、なぜコンパイラが警告を出すのかについてです。その理由は明確で(型が間違っている)、それを修正する方法は2つある。