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

 

こんにちは!

このパネルが実際のチャート上では問題なく機能するのに、ストラテジーテスター 上では機能しないのはなぜでしょうか?

例えば、ボタン押下のイベントが処理されません。

どうすれば直せますか?

よろしくお願いします!

 
mt5で 他の言語から パネルを使用する方が良いかは、純粋にターミナルとチャートに 依存します。
 
Vitaliy Davydov ストラテジーテスターでは 機能しないのはなぜですか?

つまり、例えばボタン押下のイベントが処理されないのです。

どうすれば直せますか?

よろしくお願いします!

数年前にボタンを使った解決策を 投稿しました。しかし、MT5テスターでは編集フィールドが機能しません。編集フィールドの隣に小さな+/-ボタンを追加し、それを使って編集することはできますが。しかし、独自のニュアンスがあるでしょう。
 
ON_MOUSE_FOCUS_KILLは何も使われていないようだ。Mapに追加しても何も起こらない。ON_MOUSE_FOCUS_KILLをコメントアウトすれば、コンパイラーはそれをスキップする。
 

こんにちは!

私はCDialog(またはCWndContainer)を継承したパネルを作成します。

チャートのメイン・ウインドウにパネルを作成した場合、全て動作します - パネルはマウスで移動し、クローズ・ボタンで閉じます。

サブウインドウにパネルを作成した場合、何も動作しません - パネルは動かず、閉じるボタンに反応しません。

質問 - パネルがサブウィンドウのチャートのイベントに正常に反応するようにするにはどうすればよいでしょうか?

 

こんにちは、無事にパネルを作ることができました。素晴らしいチュートリアルをありがとうございました。

 
Vasiliy Pushkaryov #:
数年前、ボタンを使った解決策を 投稿しました。しかし、MT5テスターでは編集フィールドが機能しません。編集フィールドの隣に小さな+/-ボタンを追加し、それを使って編集することはできますが。しかし、独自のニュアンスがあるでしょう。

こんにちは!

ありがとうございます。

さて、他の問題です、

MT4テスターのテスト視覚化モードでは全く機能しません。

この問題に対するグローバルな解決策はありますか?

 
Vitaliy Davydov #:

こんにちは!

ありがとう。

しかし、これらのパネルはすべて標準ライブラリのものです、

MT4テスターのテスト表示モードでは全く機能しません。

各コントロールのためにタンバリンで踊る必要がないように、この問題に対するグローバルな解決策はありますか?

機能しないとはどういう意味ですか?私のMT4テスターでは、それらはそれぞれの機能を果たしています。

CButtonを継承してcMyButton::isButtonPushed() 関数を追加し、テスターで動作するようにした例を 挙げました。

CEDITやCCheckBoxも同じようにして、いつも継承したものを使っている。これは一度だけの作業である。

TestPushファイルにはサンプル関数 checkPushingButtons() があった:

void OnTick()
{
    if(MQLInfoInteger(MQL_VISUAL_MODE)) ExtDialog.checkPushingButttons();
}

//+------------------------------------------------------------------------------------------------------------------+
//| テスターとOnTickについて。ボタン(またはオブジェクト)が押されたかどうかチェックしてみましょう。
//+------------------------------------------------------------------------------------------------------------------+
void CAppWindowCorrectMinimization::checkPushingButttons()
{
   if(m_button1.isButtonPushed())    print1();
   if(m_button2.isButtonPushed())    print2();
}


これは私のコードから:

//+------------------------------------------------------------------------------------------------------------------+
//| テスターとOnTickについて。ボタン(またはオブジェクト)が押されたかどうかチェックしてみましょう。
//+------------------------------------------------------------------------------------------------------------------+
void cInterface::checkPushingButttons()
{
  if(btnOnOff.isButtonPushed())    OnClickOnOff();
  if(btnLong.isButtonPushed())     OnClickLong();
  if(btnShort.isButtonPushed())    OnClickShort();

  if(btnCloseOff.isButtonPushed()) OnClickCloseOff();
  if(btnProtocol.isButtonPushed()) OnClickProtocol();
  if(btnOpposMA6.isButtonPushed()) OnClickOpposMA6();

  if(editMA2plus.isEditChanged())  OnEditMA2plus();
  if(editPunct.isEditChanged())    OnEditPuncture();

つまり、テスターなしで作業する場合とテスターで作業する場合の違いは、 checkPushingButttons()という 関数を1つ追加するだけで、各コントロールに文字列を追加し、それがプッシュなのかインプットなのかをtickでチェックすることができます。

テンプレートを用意して、2、3回やれば慣れると思う。

 

ウラジミールさん、こんにちは。
まず、素晴らしいチュートリアルをありがとうございました。テンプレートで使用する際に問題が見つかりました:空のチャートのテンプレートにアプリケーションを入れてください。このテンプレートをロードした後、アプリケーションは写真のように2回表示されます。これを修正する方法はありますか?

よろしくお願いします。

ファイル:
 

パネル/ウィンドウがチャートの境界を越えてドラッグ/移動できないのはなぜですか?

Anatoliのeasyfastguiライブラリとの違いは何ですか?