記事"MQLプログラムのグラフィカルインターフェイスのマークアップツールとしてのMQL 第1部"についてのディスカッション

 

新しい記事 MQLプログラムのグラフィカルインターフェイスのマークアップツールとしてのMQL 第1部 はパブリッシュされました:

この論文では、MQLの構造体を用いて、MQLプログラムのウィンドウインタフェースを記述するための新しい概念を提案します。 特別なクラスは、表示可能なMQLマークアップをGUI要素に変換し、管理し、プロパティを設定し、イベントを統一的に処理することができます。 また、標準ライブラリのダイアログや要素にマークアップを使用する例をいくつか紹介します。

なぜレイアウトがコードから分離され、特殊な言語で記述されているのでしょうか。 そのアプローチの基本的なメリットをご紹介します。

  • 要素やコンテナ間の階層的な関係を視覚的に表示します。
  • 論理的なグループ化。
  • レイアウトとアライメントの統一された定義。
  • プロパティとその値を書くことができます。
  • 宣言により、ライフサイクルを維持するコードの自動生成と、要素の作成、設定、データのやり取り、削除などの制御を実装することができます。
  • 一般化された抽象化レベル、すなわち、一般的なプロパティ、状態、初期化/処理フェーズで、コーディング上で独立してGUIを開発することができます。
  • レイアウトの繰り返し使用(複数)、すなわち、同じフラグメントを異なるダイアログに複数回インクルードすることができます。
  • タブ間の切り替えに似た方法で、動的なコンテンツの実装/生成をオンザフライで行い、それぞれに特定の要素のセットを使用します。
  • レイアウト内の「コントロール」を動的に作成し、標準MQLライブラリの場合はCWndのような基本クラスへのポインタの単一配列に保存します。
  • インタラクティブ・インターフェース・デザインに特定のグラフィック・エディタを使用します - この場合、レイアウトを記述する特別なフォーマットは、プログラムの外部表現とプログラミング言語の実行部分との間の接続リンクとして機能します。

MQL環境の場合、問題を解決するために、ほんの数ショットを行っただけです。 特に、ビジュアルダイアログデザイナーについては、オブジェクトクラスの設計と構築方法の記事で紹介しています。 これはMAterWindows ライブラリをベースに動作します。 しかし、レイアウトの配置方法やサポートされている要素タイプのリストはかなり限定されています。

ビジュアルデザイナーがいないそれにも関わらず、より高度なレイアウトシステムは GUIコントロールのためのレイアウトとコンテナの使用 CBox クラスCGrid クラス の記事で提案されています。 CWndObjやCWndContainerから継承した標準の制御要素やその他の要素をすべてサポートしていますが、コンポーネントの作成や配置を目的としたルーチンコーディングはユーザに任せています。

概念的には、コンテナを使ったこのアプローチは高度なものです(実質的にすべてのマークアップ言語でマークアップしていることを述べれば十分でしょう)。 つまり、その点に気をつける必要があります。 以前の記事(トレードにおけるOLAPの適用(その2)。インタラクティブな多次元データ分析結果の可視化)では、コンテナCBoxとCGridの修正と、"ラバー "プロパティをサポートするためのコントロール要素を提案しました。 以下では、その際の開発を利用して、標準ライブラリのオブジェクトに代表される要素を自動的に配置するという問題を解決するために、改良していきます。


作者: Stanislav Korotky

理由: