パネルやダイアログを作成するためのクラス

 

これがそのクラス です。もちろん、疑問はたくさんある。多すぎるくらいだ。でも、今のところ1がメインです。

サブウィンドウのインジケーターから価格チャートにパネルを作成する方法はないのでしょうか?

 
Dmitry Fedoseev:

これがそのクラス です。もちろん、疑問はたくさんある。多すぎるくらいだ。でも、今のところ1がメインです。

サブウィンドウのインジケーターから価格チャートにパネルを作成する方法はないのですか?

そうなの?(˶‾᷄ -̫̫ ‾᷅˵)

EURUSDM1

 
Vladimir Karputov:

これ( \MQL5Indicators ﹑Examples ﹑SimplePanel ﹑SimplePanel.mq5 )じゃないんですか?

そうではありません。インジケーター自体はサブウィンドウに描画されますが、パネルは価格チャート上に作成する必要があります。subwinパラメータに反応はありません。Dialog.mqhのコードから判断すると、そうではないはずです。

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

私はすでにこの状況を打開する方法を見つけました、非常にトリッキーな(そして非常に珍しい、記事になります)。それにしても、このクラスの作り手の考え方はとても面白いですね。

 
Dmitry Fedoseev:

間違っている。インジケーター自体はサブウィンドウに描画されますが、パネルは価格チャート上に作成する必要があります。subwinパラメータに反応はありません。Dialog.mqhのコードから判断すると、そうではないはずです。

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

私はすでにこの状況を打開する方法を見つけました、非常にトリッキーな(そして非常に珍しい、記事になります)。それにしても、このクラスの作り手の考え方はとても面白いですね。

やってません。ダイアログやパネルを作成するためのクラスに基づいてインジケータがパネルを作成 する場合、それは独自のウィンドウで行います。おそらく、イベントの受信にもリンクしているのでしょう。
 

またしても不具合が発見されました。価格チャート上のインジケーターから パネルを作成するのですが、チャート上のサブウィンドウにインジケーターがあると、パネルが不具合になります。

パネルやダイアログを作成するためのクラスではなく、地獄からの贈り物。

 

GUIはどのようなものですか?どのような制御を行う予定ですか?GUIが必要な記事には、私のバージョンを使って、GUIを作る手伝いをすることができます。

最新版(ビルド4)のライブラリはこちら:Graphic Interfaces X: Standard Graphics Element (build 4)

興味があれば、プライベートで続ける。

 
Anatoli Kazharski:

GUIはどのようなものですか?どのような制御を行う予定ですか?GUIが必要な記事には、私のバージョンを使って、GUIを作る手伝いをすることができます。

最新版(ビルド4)のライブラリはこちら:Graphic Interfaces X: Standard Graphics Element (build 4)

興味があれば、プライベートで続ける。

どうあるべきなのか、わからない。ここだけ 見ると、GUIを使ったトピックが多いので、ロシュはパネルやダイアログを作るための標準クラスを普及させることにしたのかなと思いました。普及させるべきでなく、永遠に忘れ去られるべき存在です。

GUI作成に関する記事に特別な要求がなければ(いずれロシュが答えてくれることを期待します)、自分で何か作ることができます。私自身、あなたの記事を読むことができます。ただ、私は自分の問題を誰かのせいにすることには慣れていないんです。

 
Dmitry Fedoseev:

...

自分でも記事を読むことができるただ、私は自分の問題を誰かのせいにする習慣がないんです。

複雑なことではないんです。つまり、私の時間をあまり使わないで済むということです。それに、自分でも面白いですから。

ちょっと待てば、このスレッドの問題についてのインジケーターのテンプレートが出来上がる。

//---

ファイルの入ったアーカイブは、トレイラーにあります。

ファイル:
Test.zip  3 kb
 
Anatoli Kazharski:

そこは難しくないんです。というか、そんなに時間はかからないでしょう。

文字通り1分で、このスレッドの質問に対するインジケータ・テンプレートが出来上がりました。

//---

トレーラー内のファイルを集めたアーカイブ。

Anatolyさん、MQさんと標準ライブラリに クラスを追加することについて話し合ったことはないのですか?標準ライブラリでは輝かないのに、こんなに素晴らしい仕事+記事、全てが美しいんですね。

それとも代替案としてやるか...。

 
Alexey Kozitsyn:

Anatoly、あなたとMQは、あなたのクラスを標準ライブラリに 追加することについてまだ話していないのですか?せっかくの+記事-全てが美しいのに、標準ライブラリはそれに輝かないんですね。

それとも代替案としてやるか...。

すでに代替品として持っていますね。しかし、標準ライブラリに入れるには、やることがたくさんあります。中途半端なものを出したくはないですからね。今の実装の段階では、みんながイエスと言っても、私は賛成できません。
 
Anatoli Kazharski:

そこは難しくないんです。つまり、私の時間を奪うことはないだろうということです。それに、自分でも面白いですから。

文字通り1分で、このスレッドの質問に対するインジケータ・テンプレートが出来上がりました。

//---

ファイルの入ったアーカイブは、トレイラーにあります。

よしわかった、周りに聞いてみよう。でも、2、3日後にはしばらく休んでください、オーバーヒートです。はい、それとGUIの要件についてロシュから回答をもらいたいと思います。

もしよろしければ、上の写真のような、スピン付きの2つの入力フィールド、2つのドロップダウンリスト、ボタンがあるウィンドウを持つテンプレートを見せてください。当然、イベントの処理も必要ですし、ウィンドウのサイズを変更する方法のコード例もあればいいと思います。

私のタスクの要点は、フォーム上のコントロールのセットをオンザフライで変更する必要があるということです。
理由: