//-----------------------------------------------------
//This function will start the blinking of the elements.
//-----------------------------------------------------
voidBlink_start()
{
}
//-----------------------------------------------------
//This function will stop the blinking of the elements.
//-----------------------------------------------------
voidBlink_stop()
{
}
case Settings_example_1___Start:
//------------------------------------------------------------------------------------------------------//What to do when the button is pressed or released?//------------------------------------------------------------------------------------------------------switch((int)action)
{
case pressed: Blink_start(); break;
case released: Blink_stop(); break;
}
//------------------------------------------------------------------------------------------------------//Your comment://------------------------------------------------------------------------------------------------------break;
voidBlink_start()
{
//Setting the color and the part of the element that is suppoused to blink.w6_i_p1_BUTTON_Start((int)clrLimeGreen,p1_BLINK_frame);
}
voidBlink_start()
{
//Setting the color and the part of the element that is suppoused to blink.w6_i_p1_BUTTON_Start((int)clrRed,p1_BLINK_base);
}
結果: ボタン・ベースは 赤く点滅し、押されると点滅が止まる。
次に、ボタンのフレームとテキストの点滅を組み合わせてみましょう:
void Blink_start()
{
//Setting the blinking of the frame and the text of the button w_6_Settings_example_1((int)clrRed,p8_BLINK_frame);
w_6_Settings_example_1((int)clrRed,p8_BLINK_text);
}
結果:ボタンのフレームとテキストは、意図したように異なる色で同期して点滅します。
5.このウィンドウの他の要素を点滅につなげましょう:
voidBlink_start()
{
//Setting the color and the part of the element that is suppoused to blink.//-------------------------------------------------------------w6_i_p1_BUTTON_Start((int)clrLimeGreen,p1_BLINK_frame);w6_i_p1_BUTTON_Start((int)clrRed,p1_BLINK_text);//-------------------------------------------------------------w6_d_p5_S_EDIT_Spin_the_value((int)C'255,50,0',p5_BLINK_frame);w6_d_p5_S_EDIT_Spin_the_value((int)C'255,50,0',p5_BLINK_text);//-------------------------------------------------------------w6_i_p3_H_SLIDER_Roll_the_value((int)C'255,50,0',p3_BLINK_handle);w6_i_p3_H_SLIDER_Roll_the_value((int)C'255,50,0',p3_BLINK_bar);//-------------------------------------------------------------w6_i_p7_CHECKBOX_Set_an_option((int)C'255,50,0',p7_BLINK_text);//-------------------------------------------------------------w6_s_p6_D_LIST_D_LIST_1((int)C'255,50,0',p6_BLINK_frame);//-------------------------------------------------------------
}
点滅の無効化も Blink_stop( ) 関数内に書いてみましょう :
voidBlink_stop()
{
//Stopping the blinking//-------------------------------------------------------------w6_i_p1_BUTTON_Start(p1_BLINK_STOP);//-------------------------------------------------------------w6_d_p5_S_EDIT_Spin_the_value(p5_BLINK_STOP);//-------------------------------------------------------------w6_i_p3_H_SLIDER_Roll_the_value(p3_BLINK_STOP);//-------------------------------------------------------------w6_i_p7_CHECKBOX_Set_an_option(p7_BLINK_STOP);//-------------------------------------------------------------w6_s_p6_D_LIST_D_LIST_1(p6_BLINK_STOP);//-------------------------------------------------------------
}
voidBlink_start()
{
//Setting the color and the part of the element that is suppoused to blink.
//-------------------------------------------------------------
w_6_Settings_example_1((int)clrRed,p8_BLINK_frame);//-------------------------------------------------------------w6_i_p1_BUTTON_Start((int)clrLimeGreen,p1_BLINK_frame);w6_i_p1_BUTTON_Start((int)clrRed,p1_BLINK_text);//-------------------------------------------------------------w6_d_p5_S_EDIT_Spin_the_value((int)C'255,50,0',p5_BLINK_frame);w6_d_p5_S_EDIT_Spin_the_value((int)C'255,50,0',p5_BLINK_text);//-------------------------------------------------------------w6_i_p3_H_SLIDER_Roll_the_value((int)C'255,50,0',p3_BLINK_handle);w6_i_p3_H_SLIDER_Roll_the_value((int)C'255,50,0',p3_BLINK_bar);//-------------------------------------------------------------w6_i_p7_CHECKBOX_Set_an_option((int)C'255,50,0',p7_BLINK_text);//-------------------------------------------------------------w6_s_p6_D_LIST_D_LIST_1((int)C'255,50,0',p6_BLINK_frame);//-------------------------------------------------------------
}
case Settings_example_1___Spin_the_value:
//------------------------------------------------------------------------------------------------------//What to do when the value is set?//------------------------------------------------------------------------------------------------------//Min value: NOT SET | Max value: NOT SET | V_step: 1.7 | Default value: 468.99 | Digits: 3//------------------------------------------------------------------------------------------------------w6_i_p3_H_SLIDER_Roll_the_value((int)value);//Сalling the blinking delay functionBlink_delay((int)value);//------------------------------------------------------------------------------------------------------//Your comment://------------------------------------------------------------------------------------------------------break;
トピック14.3:エレメント(フレーム、ベース、テキスト、スライダー、スライダーボード)の一部を点滅させることによる危険値の表示。
エレメントの点滅は、パラメータが危険値のゾーンに移行したことを知らせるカラー表示に追加する優れた方法です。新しいソリューションの実装は、以前のものと似ていますが、カラー表示が、値が危険値に近いほど色が明るくなるという原則に従って動作する場合、点滅は、点滅用に設定された色で初期色の変化の頻度を増加させるだけです。ユーザーは点滅の遅延時間をプログラムによって調整することができ、25ミリ秒まで徐々に短くしたり、2.5秒まで長くしたりすることができる。この場合、両方の機構を同時に作動させることができる。色はライトグリーンから明るい赤、ワインレッドへと変化し、点滅のスピードも速くなる。一方の機構がもう一方の機構を妨げることはない。次に、実用的な例を説明する。
*重要: 点滅はカラー表示機能とは独立して作動する。 この2つのメカニズムは技術的には無関係であり、並行して働くことも、別々に働くこともできる。
点滅を実装するために、インタラクティブ要素に新しいプロパティが追加された:
点滅の速度と停止を制御する新しいプロパティを追加しました:
以上をまとめてみましょう:
明日は実践的な例について説明する。
今日は私たちが話していることを理解するための小さなデモです。
残念ながら、録画時にラグがあります。プロセッサーに負荷がかかっているのだ。しかし、このデモでは、エレメントが非同期でさまざまなスピードで点滅していることがわかる。エレメントの異なる部分も点滅している。これらはすべてプログラムで設定されている。そして、タスクバーのタブは自動的に最も速く点滅するエレメントを見つけ、青くなった。そして、その要素の点滅回数が減り始めると、もう1つの最も速く点滅する要素を見つけ、赤くなった。
これについては明日詳しく説明しよう。
追伸:これらの非常に便利な機能を使うためのオプションについても説明します。
昨日のトピックに続いて...。
今日はエレメントの点滅について概念的にまとめ、トピックを終える。
昨日は危険な値を知らせるという文脈で点滅を見ただけだったが、応用範囲はもっと広い。例を挙げよう:
複数の マーケットプレイスの状況を分析する多通貨のExpert Advisorを 想像してみよう。複雑な基準に従って最適なエントリー/エグジットポイントを選択するとする。このExpert Advisorは半自動モードで動作し、トレーダーは取引戦略のロジック全体をプログラムすることができないか、したくないとします。ロボットが市場を監視し、データを収集し、重要なポイントを通知します。エキスパートの仕事は、結果を分析し、表や図で表示することに限定される。取引の最終決定は人が行う。
このモデルでは、取引活動はリアルタイムのデータ・ストリームを観察し、一連の実行値をカスタム・パラメーターに詰め込むことからなる。後者は状況認識を拡大するのに役立つ。
しかし、ライブ取引ではタイムリーな意思決定が求められる。問題は、分析結果が複数のグラフィカル・ビューを通じて異なるウィンドウに表示される場合に生じる。注意を要する情報量が増え、注意の焦点が分かれる。その結果、トレーダーの頭の中で相場観が曇り、作業効率が低下する。疲労がやってくる。
この場合、点滅する要素は良い助けとなる:
それでは、新機能の実用的な内訳を説明しよう:
//----------------------------------------------------------------------------------------------------------
1.準備動作の順番
次に、APIファイルから「Start」ボタンのケースを探し、ボタンを押したイベントと押したイベントに対するBlink_start() 関数とBlink_stop() 関数の呼び出しを書いてみよう:
それでは、関数の中身を埋めていきましょう:
1.Start "ボタンのフレームを点滅させる必要がある。ボタン・フレームの点滅プロパティの識別子を p1_BLINK_frameと し、点滅する色と点滅するオブジェクトを指定する。
2.次に、ボタンを離すと点滅が無効になるように実装します。p1_BLINK_STOPという 識別子が点滅を止める役割を担っている。 それ以外の部分を括弧で囲む必要はない。
結果を確認してみよう:
3.フレームの代わりにボタン・テキストの点滅をオンにしてみましょう。テキストの点滅はpn_BLINK_text プロパティの識別子が担当します:
結果:ボタンのテキストは青く点滅し、ボタンが押されると点滅が止まります。
4.ボタン・ベースの点滅をオンにしてみましょう。pn_BLINK_base プロパティの識別子が、ベース部分を担当します:
結果: ボタン・ ベースは 赤く点滅し、押されると点滅が止まる。
次に、ボタンのフレームとテキストの点滅を組み合わせてみましょう:
結果:ボタンのフレームとテキストは、意図したように異なる色で同期して点滅します。
5.このウィンドウの他の要素を点滅につなげましょう:
点滅の無効化も Blink_stop( ) 関数内に書いてみましょう :
結果:新しい要素はBlink_start()とBlink_stop()に含まれ、意図したように点滅します。
6.ボタンがクリックされたときにウィンドウ・フレームが点滅するようにしてみましょう。(遅れている要素の点滅は一時的に無効にしよう)。
結果:ウィンドウ・フレームは意図したとおりに点滅する。
*重要:すべての考慮された要素と窓枠は、デフォルトの速度で点滅しました。
さらに、スライダー・ハンドルとボタン・フィールドを持つ要素の点滅速度を調節します。
7.点滅速度をボタンとスライダーのあるフィールドの値にバインドしてみましょう。すべての要素とウィンドウフレームが同時に点滅し、点滅速度はこれらの要素によって手動で設定されます。
点滅の速度はpn_BLINK_DELAYの 遅延に依存します。
この問題を解決するには、次のようにします:
Blink_start() 関数の中にウィンドウフレームの点滅を追加する 。
Blink_stop() 関数内でウィンドウフレームの点滅を無効にする :
Blink_delay() 関数を書く:
スライダーと入力フィールド要素のイベントでBlink_delay()関数を呼び出し、要素の現在値を渡す:
*重要:チェックボックスとドロップダウンリスト要素の点滅速度を変更することは不可能であることが判明しました。この速度は常に20(半秒)に等しい。これは意図的にやったことですが、将来的には変更するつもりです。他の要素は点滅速度を変えることができる。
Spin_the_value "要素(ボタンのあるフィールド)のイベントからBlink_delay() 関数を呼び出してみましょう。フィールドはスライダーに接続されているので、スライダーのケースに呼び出しを入れる必要はありません。接続はうまくいき、直接呼び出しのないスライダーはボタン付きフィールドを通して点滅速度を変更します:
結果:ボタン付きフィールドとスライダーは、ウィンドウ内のエレメントの点滅速度を変更します。
結果
私はこのトピックは出尽くしたと考える。
次は、「キャンセル」ボタンによる入力値のキャンセルです。
次のバージョンは来週の月曜日か火曜日にリリースされる予定です。このアップデートには、上記の機能のほか、設定ウィンドウでのパラメータ入力のキャンセル/確認が含まれる。さらに、カタログは英語に翻訳され、コードは特定された問題のコンパイルされたリストから調整と修正が行われる。