記事"グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3"についてのディスカッション

 

新しい記事 グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3) はパブリッシュされました:

本稿はグラフィカルインターフェイスに関するシリーズの続きです。シリーズ第一弾のグラフィカルインタフェース I: ライブラリストラクチャの準備(チャプター 1)ではライブラリの目的を詳細に考慮します。第一部の記事へのリンクの完全なリストは各章の終わりにあります。そこではまた、開発の現段階でのライブラリの完全版をダウンロードすることができます。ファイルはアーカイブと同じディレクトリに配置される必要があります。

前回の記事で は、コントロールのフォームクラスの開発に着手しました。本稿では、チャート領域にフォームを移動するためのクラスメソッドを書き入れによってそれを続行 します。その後、このインターフェイスコンポーネントをライブラリコアに統合します。また、カーソルが上をホバリングしたときにフォームコントロールの色 が変わることを保証します。

カーソルが上をホバリングしたときのインターフェイスコンポーネント外観の変更

全てのコントロールの基本クラスであるCElementクラスの実装については既に考慮しました。そのメンバの一つとして、カーソルのホバー時にオブジェクトの色を変更するCElement::ChangeObjectColor() メソッドが作成されました。ここで、それを作業に使用するためのメカニズムを作成します。このような機能の追加には、タイマーが必要です。これは、MQL アプリケーションの初期設定では無効になっています。設定された目標に応じたタイマーを有効にするかどうかの決定はアプリケーション開発者に任されていま す。

タイマーを有効にするには、MQL言語には異なる頻度を持つEventSetTimer()ちEventSetMillisecondTimer() の2つの関数があります。一番目の関数では、1秒以上の間隔を設定することができます。カーソルのホバー時のコントロールの外観変更には、1秒間隔は長す ぎるので、これは目的に沿いません。変更は、そのような遅延なしですぐに起こるべきです。ミリ秒単位で測定された間隔でのタイマー設定をサポートするEventSetMillisecondTimer()関数が使用されます。MQLレフェレンスによれば、この関数を使用して設定できる最小間隔は10から16ミリ秒です。これは我々の計画を実現するのに十分です。

図2オブジェクトのマウスカーソルへの反応のためのテスト

図2オブジェクトのマウスカーソルへの反応のためのテスト

作者: Anatoli Kazharski