記事"任意の複雑さのレベルのグラフィカルなパネルを作成する方法"についてのディスカッション - ページ 6

 
MetaQuotes:

新しい記事「How to create graphical panel of any complexity level」が掲載されました:

著者ウラジーミル・カルプトフ

ありがとうございます。素晴らしい!

あなたの例で1つだけ見落としていたことがあります。データ情報をテキストや数値としてどのように含めるかについて説明する必要があります。

例えば

ストップロス値:50.50

利食い値:250.00

移動平均 (200):110.5.


このようなことをする方法を教えてくれる記事をご存知ですか?

 
Guilherme Mendonca :

シェアしてくれてありがとう。素晴らしい!

あなたの例で1つだけ見落としていたことがあります。データ情報をテキストや数字として含める方法を教えてください。

例えば

ストップロス値:50.50

利食い値:250.00

移動平均 (200):110.5.


このようなことを行う方法を教える記事を知っていますか?

MetaEditorの標準パネルの例をチェックして ください。

 

この質問について教えてください。

あなたの "AppWindowTwoButtonsClass "ファイルにパネルシフト関数setShift()を追加しました。 これで、チャートのボーダーを右に動かしてそれがパネルに近づくと、パネルはチャートのボーダーと一緒に左に動き始めます。

void OnChartEvent(const int id,         // イベントID 
                  const long& lparam,   // ロング・タイプのイベント・パラメーター
                  const double& dparam, // double型のイベントパラメータ
                  const string& sparam) // 文字列型のイベント・パラメーター
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   if(id == CHARTEVENT_CHART_CHANGE) ExtDialog.setShift();
  }

この関数の呼び出しは黄色でハイライトされている。

問題は、この擬似コードを通してこの関数を呼び出す方法はないかということです。

EVENT_MAP_BEGIN(cGPanel)            

EVENT_MAP_END(CAppDialog)

この関数を呼び出すには、グローバルなOnChartEvent()関数からではなく、継承クラスから呼び出す必要があります。

いくつかの定義を試してみました:ON_NO_ID_EVENT(event,handler)、ON_OTHER_EVENTS(handler)。しかし、それらがどのように機能するのか理解できません。

setShift()関数を追加したファイルを添付します。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
ファイル:
 
とても役に立った。
ちょっと質問です、

どうして次のようにするのですか?
//--- アプリケーション・ダイアログの作成
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
//--- アプリケーションの実行
   AppWindow.Run();
//--- 成功
   return(INIT_SUCCEEDED);
  }
の代わりに
//--- アプリケーション・ダイアログの作成
   AppWindow.Create(0,"AppWindow",0,20,20,360,324));
//--- アプリケーションの実行
   AppWindow.Run();
/
  }
これはmql4のGUIで使っていたものです。

これはmql5の必需品なのでしょうか、それとも他の利点があるのでしょうか?

ありがとうございます。
 
emargrie :
とても役に立った。
早速質問です、

どうして次のような使い方をするのですか?
の代わりに、
これはmql4のGUIで使用したものです。

これはmql5の必需品なのでしょうか、それとも他の利点があるのでしょうか?

ありがとうございます。

もし本当に違いがわからないのであれば、古いターミナルを捨てる必要がある。残念ながら、古いターミナルはあなたに非常に危険なコードを書くことを教えた。

 
Vladimir Karputov:

もし本当に違いがわからないのであれば、古いターミナルを捨てる必要がある。残念ながら、古いターミナルはあなたに非常に危険なコードを書くことを教えた。

決してあなたの投稿を揶揄したわけではなく、なぜこのようなことが行われるのかという疑問の方が大きかったので、そのために勉強しているのだ-私のプログラミング知識は非常に限られている。

 
emargrie :

あなたの投稿を揶揄したわけでは決してなく、なぜこのようなことが行われるのかという疑問の方が大きかった。

エラー・リターンをチェック しないコードは書けない。

 
Vladimir Karputov:

すでに説明したように、エラー・リターンをチェックしないコードは書けない。

ありがとう
 

こんにちは、ウラジミール

よくできた文章だ。

よろしくポール

 
Paul Anscombe:

こんにちは、ウラジミール

よく書かれた作品だ。

よろしくポール

ありがとう