記事"MQLプログラムをグラフィカルに表示するためのマークアップツールとしてのMQL(その3)。 フォームデザイナー"についてのディスカッション

 

新しい記事 MQLプログラムをグラフィカルに表示するためのマークアップツールとしてのMQL(その3)。 フォームデザイナー はパブリッシュされました:

本論文では、MQLの構造を利用してMQLプログラムのウィンドウインタフェースを構築する概念の説明をします。 特殊なグラフィカル・エディタでは、GUI要素の基本クラスで構成されるレイアウトをインタラクティブに設定し、MQLにエクスポートしてMQLプロジェクトで使用することができます。 本論文では、エディタの内部設計とユーザーガイドを紹介します。 ソースコードも添付します。

エディタは、標準ライブラリのインターフェース要素のクラスに設計されています。 他のライブラリ用の同様のツールを作成するには、提案されているマークアップシステムから、すべての抽象的なエンティティの具体的な実装を記述する必要があります。 同時に、標準ライブラリのマークアップクラスの実装に導かれるようにしてください。

"標準コンポーネントのライブラリ "の定義が事実上正しくないことに注意する必要があります。 ここで、改良していきます。

エディタがサポートする要素の種類をリストアップしてみましょう。

  • 水平方向(CBoxH)と垂直方向(CBoxV)のコンテナCBox。
  • CButton,
  • CEditのインプットボックス。
  • CLabel,
  • SpinEditResizable,
  • CDatePicker calendar,
  • ドロップダウンリスト ComboBoxResizable.
  • List ListViewResizable,
  • CheckGroupResizable,
  • RadioGroupResizable.

すべてのクラスは適応的なリサイズを保証します (標準型は最初にできましたが、他の型についてはかなりの変更をしなければなりませんでした)。

フォームの編集

フォームの編集

作者: Stanislav Korotky

 
力強かった!
 
おめでとう!素晴らしい仕事と記事だ。
 
やっとまともな大会(結果のこと)になった。さあ、頑張れ!))))
 

ビジュアル・エディターには、ストレッチ、移動、テキスト入力、コピーなど、要素の手動編集が含まれるべきである。補助的なマークアップが望ましい。

このエディターは有望だが、作者が他の要件をどのように実現しているのか、彼の技術を理解していない私にはわからない。標準ライブラリの「肩の上に立つ」エディターであり、強力な推進力を与える一方で、その限界を受け継がせるものでもある。それは大規模な変換のために設計されていない...。多くの機能を上から追加しなければならないだろう。

将来のエディターに必要なリスト

1.エレメントの手動カスタマイズ。

2.要素のコピー。

3.一連の要素の同時プロパティ管理。

4.補助フレーミング。

5.マルチウィンドウモード。

6.異なるタイプのウィンドウの作成。

7.ウィンドウのプロパティのサポート:"常にトップ"、他をブロック、最小化の有無。

8.ウィンドウの並列編集。

9.ウィンドウの削除。

以上です。


ZY.私の知る限り、SBのコントローラーはMTオブジェクトで構成されており、一方では(昔、MTオブジェクトをベースにしたエディターがあったが、作るのは難しくなかった)要素との相互作用や手動調整のシステムを単純化し、他方では(この単純化を受け入れるなら)(スピード、視覚効果、その他もろもろの)カンバスの利点をすべて奪っている。つまり、エディタを作るときに SB を使うことによる「ドーピング効果」が、その発展を著しく制限しているのだ。しかし、さて...。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
興味深いことに、カンヴァスがなくても、要素を手動で設定する問題を解決すれば、作者は補助的なマークアップを行うことができる。私はそうしてきた。もちろん、キャンバス上のマークアップのほうが視覚的にはクールだが、たとえばシャープ・エディターでは、マークアップはまばらだが実用的だ。コントローラーの位置決めに役立つのは数行だけだ。マークアップを作った後で調べてみて驚いた。

タスクバーも作る必要がある。できれば。
 
とてもいいね!
おめでとう!

MT5が時間の経過とともにどんどん良くなっていくのは驚きです。
近い将来、誰でもあなたのニーズに合ったグラフィック・インターフェースを 構築し、設定できるようになると思います。
 
宣言的MQLレイアウト設計によって構築されたGUIを持つプログラムの新しい例がコードベースに公開されました -ChartBrowser
ChartBrowser
ChartBrowser
  • www.mql5.com
This is an utility which allows you to list all open charts, indicators, expert advisers, and scripts in alphabetic order, and switch between them.
 

こんにちは、

私のノートパソコンの1台で、このような状況に直面しています。

テキストラベル以外はすべて小さく見えます。

TerminalInfoInteger(TERMINAL_SCREEN_DPI)」の値は192です。

これを解決する方法をご存知ですか?ライブラリは私の画面設定に応じて自動的に調整されると思ったのですが。


 
Guilherme Mendonca #:

こんにちは、

私のノートパソコンの1台で、このような状況に直面しています。

テキストラベル以外はすべて小さく見えます。

TerminalInfoInteger(TERMINAL_SCREEN_DPI)」の値は192です。

これを解決する方法をご存知ですか?ライブラリは私の画面設定に応じて自動的に調整されると思ったのですが。


残念ながら、異なる環境下でそれをテストする手段がありません。ライブラリは標準的なコントロール(dpiとは関係ない小さな修正あり)をベースにしています。そのため、もし何らかの不具合があったとしても、これはライブラリの問題ではなく、一般的な問題のようです。

しかし、まずWindowsのスケール設定をチェックすべきだと思います。

 
Guilherme Mendonca #:

私のノートパソコンの1台で、このような状況に直面している。

ちょっと思いついたのですが、Defines.mqhにパッチを当ててみてください:

#define  CONTROLS_FONT_SIZE                  (-10)

マイナス記号が追加されます。

あるいは別のアイデアもある:

#define  CONTROLS_FONT_SIZE                  ((int)(10.0 / (TerminalInfoInteger(TERMINAL_SCREEN_DPI) / 96.0)))
どちらかの方法が役に立ったら教えてください。