MQLで書かれたUIのギャラリー - ページ 63

 

私はもっとシンプルにできる:

w7_s_p4_EDIT_Comment_2((string)w6_d_p5_S_EDIT_Spin_the_value());
 

理論的には、このようにすることもできる:

w7_s_p4_EDIT_Comment_2(w6_d_p5_S_EDIT_Spin_the_value());

コンパイラー自身がdoubleを文字列に変換するのだが、あまりお勧めはしない。

 
Реter Konow #:

質問の意味がよく分からないので、トピックから外れた回答になるかもしれない。

このようにできます:


double関数は値を返すステップで強制的に変換して文字列型の変数を返します。
w7_s_p4_EDIT_Comment_2 関数の内部で、文字列型の変数に変換します。
double Spin_edit_value = 22.5;

w7_s_p4_EDIT_Comment_2(Spin_edit_value);
 
Реter Konow #:

理論的には可能だ:

コンパイラー自身がdoubleを文字列に変換してくれるからだ。

w7_s_p4_EDIT_Comment_2 関数は、double型を受け取る対応するオーバーロード版を生成できないのでしょうか?

 

プロパティの設定と、要素間の値の返送と転送の話題を続けます。


いくつかのオプションを検討しました:

1.テキスト入力フィールドにテキストを設定する。

w7_s_p4_EDIT_Comment_1("Some random text");

2.スライダーに新しい値を割り当てる。

w6_i_p3_H_SLIDER_Roll_the_value(33);

3.ボタン付き入力フィールドに任意の数値を選択。

w6_d_p5_S_EDIT_Spin_the_value(423.11);

4.口座情報 テーブルのセルに複数のテキスト文字列を送信。

w8_s_p4_CELL_Account_name__Value("MyRealAccount");  

w8_s_p4_CELL_Account_number__Value("A001234647843B1");

w8_s_p4_CELL_Account_server__Value("MyServer");

w8_s_p4_CELL_Account_currency__Value("US Dollar");

w8_s_p4_CELL_Leverage__Value("1:1");

w8_s_p4_CELL_Account_balance__Value("1234567.23 $");


5.最後に、S_EDIT要素の新しい値を返し、それを2つの異なるウィンドウに送りました。口座情報 テーブルのセルと、設定 ウィンドウ例2の テキスト入力フィールドです。

 double Spin_edit_value = w6_d_p5_S_EDIT_Spin_the_value();//Делаем возврат значения параметра (тип double).
w8_s_p4_CELL_Account_profit__Value((string)Spin_edit_value);//При пересылке значение double приводим к типу string. Функция ячейки имеет тип string.
w7_s_p4_EDIT_Comment_2((string)Spin_edit_value);

//---------------------------------------------------------------------------------------------------


このトピックを完了して次のトピックに進むには、いくつかのことを行う必要があります:

1. スライダーバーの色を変更する。

2.S_EDITのベースとテキストの色を変更する。

3.押された状態と押されていない状態のボタンの色を変更する。

4.タイマーイベントで要素に値を送ることを確認する

//---------------------------------------------------------------------------------------------------


1. スライダーバーの色を変更する:

   //To get slider's bar color:
   uint Sliders_bar_color = (uint)w6_i_p3_H_SLIDER_Roll_the_value(get_i, p3_COLOR_bar);
   
   //Print the returned value:
   Print("Sliders_bar_color =  ",Sliders_bar_color);

結果:



スライダーバーの色を変更する:

   //To set slider's bar color:
   w6_i_p3_H_SLIDER_Roll_the_value((uint)clrRed, p3_COLOR_bar);


結果: スライダーバーに別の色を割り当てます:

//---------------------------------------------------------------------------------------------------


2S_EDIT要素のテキストとベースの色を変更します:

ボタン付き入力フィールドのベースの元の色を取得してみましょう:

   //To get spin edit's base color:
   uint Spin_edit_base_color = (uint)w6_d_p5_S_EDIT_Spin_the_value(get_d, p5_COLOR_base);

それをログに出力する:

   //Print the returned value:
   Print("Spin_edit_base_color = ",Spin_edit_base_color);


フィールドのベースに別の色を割り当てます:

   //To set spin edit's base color:
   w6_d_p5_S_EDIT_Spin_the_value((uint)clrLightGreen, p5_COLOR_base);

結果:


S_EDITフィールドのテキスト色を設定する。 (プロパティ接頭辞p4がp5の代わりに使われているのは、S_EDITの テキスト色プロパティを追加し忘れたからです。 この バグは 次のバージョンで修正されます)。

   //To set spin edit's text color:
   w6_d_p5_S_EDIT_Spin_the_value((uint)clrBrown, p4_COLOR_text);  


//---------------------------------------------------------------------------------------------------


3.押された状態と押されていない状態のボタンの色を変更する:

ニュートラル状態のボタンの色を変更します:

w6_i_p1_BUTTON_Start((uint)C'255,166,0',p1_N_COLOR_base);


ボタンの 活性化された状態に対して 異なる色を設定します:

w6_i_p1_BUTTON_Start((uint)C'166,255,0',p1_A_COLOR_base);


中立と押された状態のボタンの文字色も変更できますが、小さいフォントでは目立ちません。そこで、別のウィンドウを選んでみましょう:

   //Set text color for button's neutral state:

   //Button 1:
   w14_i_p1_BUTTON_BUY_OFF((uint)C'240,70,10',p1_N_COLOR_text);

   //Button 2:
   w14_i_p1_BUTTON_SELL_OFF((uint)C'240,70,10',p1_N_COLOR_text); 

結果


   //Set text color for button's active state:
   
  //Button 1
   w14_i_p1_BUTTON_BUY_OFF((uint)C'105,240,50',p1_A_COLOR_text);

  //Button 2
   w14_i_p1_BUTTON_SELL_OFF((uint)C'105,240,50',p1_A_COLOR_text);

結果


//---------------------------------------------------------------------------------------------------


4.タイマー・イベントで要素に値を送ることを確認する:

void _OnTimer()
  {
   string Microseconds = (string)GetMicrosecondCount();
     
   //Send Microseconds to each cell-----------------
   w8_s_p4_CELL_Account_name__Value(Microseconds);
   w8_s_p4_CELL_Account_number__Value(Microseconds);
   w8_s_p4_CELL_Account_server__Value(Microseconds);
   w8_s_p4_CELL_Account_currency__Value(Microseconds);
   w8_s_p4_CELL_Leverage__Value(Microseconds);
   w8_s_p4_CELL_Account_balance__Value(Microseconds);
   w8_s_p4_CELL_Account_profit__Value(Microseconds);
   w8_s_p4_CELL_Account_equity__Value(Microseconds);
   w8_s_p4_CELL_Account_free_margin__Value(Microseconds);
   w8_s_p4_CELL_Account_margin__Value(Microseconds);
   w8_s_p4_CELL_Account_stop_out_level__Value(Microseconds);

結果


//------------------------------------------------------------------------------------------------

これでこのトピックは終了です。


次はトピックに移ります:

9.直前の値(_V_LAST)のリターン。いつ、どのような場合に最後の値が必要なのか(現在の値と混同しないように)。

10.異なるタイプのエレメントに対するON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK 状態の設定をテストする。

 
hini #:

w 7_s_p4_EDIT_Comment_2 関数の内部で、次に型を変換します。

できます。しかし、暗黙の型変換であるため、追加の警告が表示されます。技術的には、単に数値を送ることができます。変数なしで。皆さんの判断にお任せします。

 
hini #:

w 7_s_p4_EDIT_Comment_2 関数の内部で、次のように型を変換します。

w7_s_p4_EDIT_Comment_2 関数の内部には 何もありません。これは中心関数を呼び出すラッパーです。そして、ラッパー関数はそれ自身の型の値しか返すことができません。



hini#: w7_s_p4_EDIT_Comment_2 関数は、double型を取るオーバーロード版を生成できないのですか?

残念ながら、それはできません。なぜならラッパーだからです。すべての作業は中央の関数が行う。
 
Реter Konow #:

w7_s_p4_EDIT_Comment_2 関数の内部には 何もありません。中心となる関数を呼び出すラッパーにすぎません。ラッパー関数はそれ自身の型の値しか返すことができません。


これはラッパーなのでできません。複雑にする必要はない。すべての作業は中央関数が行う。

その通りだ。

 

今日は4つのトピックを見てみよう:

9.直前の_V_LAST 値を返す

10.異なるタイプのエレメントのON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK 状態を設定する。

11.パラメータ変更の同期:例えば、ボタンやスライダーを 持つ入力フィールド。目標は、最初の値が変化すると、それに応じて2番目の値も変化することです。まず1つのウィンドウで通信を設定し、次にウィンドウ間で通信を設定しよう。

12.スライダーとボタン付きフィールドの範囲境界をプログラムでリセットする。

//---------------------------------------------------------------------------------------------------------

これまで、以下のトピックを取り上げました:

1.インテリセンスのリストでの方向と、目的のウィンドウの機能の選択。

2.ソフトウェアによるウィンドウの開閉

3.インテリセンスのリストでの方向と、必要なウィンドウの必要な要素の選択。

4. 個別の要素プロパティのリストをナビゲートする。

5.要素名とウィンドウ・ラッパー関数の解析。

6. 選択した要素のパラメータ値をその型の変数に返す。いくつかの異なる要素の3つのタイプを考える。

7.異なるタイプの要素のパラメータに値を設定する。これらの要素のインターフェイスウィンドウに値がどのように表示されるか見てみよう。

8.あるエレメントのパラメータ値を返し、その値を修正して別のエレメントに転送する。異なるタイプの要素と値を考え、異なるウィンドウで異なるタイプの要素間の転送をテストしてみましょう。

9.前の値を返す(_V_LAST)。いつ、どのような場合に最後の値が必要なのか(現在の値と混同しないように)。

10.異なるタイプのエレメントのON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK状態の設定をテストする。

11.11.異なるタイプの要素(例えば、ボタンとスライダーを持つ入力フィールド)の値の変化をリンクし、同期させてみましょう。1つの要素(手動またはソフトウェア)の値が変化すると、それに応じて2番目の要素の値も変化するとします。

12.スライダーとボタン付き入力フィールドの範囲の境界を、ラッパー関数を使ってプログラムでリセットしてみましょう。テストする時間がなかったが、うまくいきそうな気がする。しかし、見てみよう。

13.13.ラッパー関数で要素の状態を返すようにしてみよう。機能には含まれているのだが、テストする時間がない。さて、どうなることやら。結果は不明。

14.テキストとエレメント・ベースの色を取得・設定してみましょう。これらの色を簡単なイベントや値の境界に関連付けることができます。

15.新しいAPIファイルのプリントアウトをナビゲートしたり読んだりする方法について、もう少し詳しく説明します。

 
新しいページから始めよう。