Теперь вы можете выносить графики финансовых инструментов за пределы окна торгового терминала. Это удобно при работе с несколькими мониторами. Например, на одном можно расположить основное окно платформы и следить за состоянием счета, а на другом — графики для оценки ситуации на рынке. Чтобы отделить график от терминала, отключите опцию...
コントローラを作成しようとしたとき GuiControllercontroller= new GuiController(assembly, form, m_global_events); gives Unexpected exception: The key with this name already exists (for DataGridView) and the controller is not created (the form is created, probably it can be shown, but without the controller how to control it?).
アナウンスメント(https://www.metatrader5.com/ru/releasenotes/terminal/1898)に例が示されている。
MQL5
.NETライブラリの関数を使用するには、特定の関数を指定せずにDLL自体をインポートするだけで十分です。MetaEditorは、作業可能なすべての関数を自動的にインポートします:
。
。
ライブラリから関数を呼び出すには、インポートするだけです: .
TestClassクラスのInc関数のC#コードは以下のようになる:
. スクリプトは値42を返します。
.NETライブラリ・サポートに関する作業は進行中であり、今後のバージョンではその使用を拡大する予定です。
WinAPI関数は目的別に別々のファイルにグループ化されています:
.
バインディングは64ビット・アーキテクチャでのみ動作します。
Visual Studio community2019では すべて作者の通りに動きますが、作者がこう書いています:
「各フォームには要素のパブリックリストがあります。各フォームには、それが含む要素のパブリックリストがあります。要素のリストを調べて、メソッドはコントローラがサポートできるものを見つけ、必要なイベントを購読します。フォーム上の要素がコントローラによってサポートされていない場合は、単に無視されます。"
残念なことに、SplitContainerやDataGridViewをテストフォームに配置すると、フォームが全く起動しません、なぜかは不明ですが、Chartのような複雑なコンポーネントは起動しました。
どのようなコンポーネントを修正に使用できるかのテスト例を同封します(フォームは起動しますが!)。
コントローラを作成しようとしたとき GuiControllercontroller= new GuiController(assembly, form, m_global_events);
gives Unexpected exception: The key with this name already exists (for DataGridView) and the controller is not created (the form is created, probably it can be shown, but without the controller how to control it?).
SplitContainerコンポーネントやDataGridViewコンポーネントがない場合は問題ありません。
誰かがつまずくかもしれない
記事のここです
「おわかりのように、コンパイラーはネット・ライブラリーで定義された外部列挙を理解し、その扱い方を知っている。
どういう理由かは知らないが、コンパイラーは頑なにC#の列挙型を理解しようとしない。
ただ、Vasily、あなたは取引パネルの買いボタンと売りボタンを逆に配置しています))
でも、全般的には、最高にクールなものが出来上がりました。ご苦労様でした!)
私も同じ問題を抱えていました。
ClickOnElementの代わりにGuiEventType::ClickOnElementと書きました。その後、何の問題もなくコンパイルされ、動作するようになりました。しかし、もしそうだとしたら、Vasilyにとってどのように機能したのか本当に不明です。おそらく私が何か間違ったことをしたのだろう...。
しかし、そうでなければ、このことは本当に必要で便利なことだ。MQL5に似たようなものがないのは残念だ。
私も同じ問題を抱えていた。
ClickOnElementの代わりにGuiEventType::ClickOnElementと書きました。その後、何の問題もなくコンパイルされ、動作するようになりました。しかし、もしそうだとしたら、Vasilyにとってどのように機能したのか本当に不明です。もしかしたら、私が何か間違ったことをしたのかもしれない...。
しかし、そうでなければ、これは本当に必要で便利なものだ。MQL5に似たようなものがないのは残念だ。
このようなエラーがありました:
...ClickOnElementの 代わりにGuiEventType::ClickOnElementと 書きました!
これはMT4では動作しません。私は結果を得ずに試しました。
私はMQL5の初心者ですが、この記事から多くのことを学びました!ありがとうございました!
ひとつ質問があります。この2日間、以下のことを理解するのに少し苦労しています。
各ステップは別のコンピューターでも何度か成功したのですが、コードをコンパイルしようとすると毎回エラーメッセージが表示されます。
MQLコンパイラーは次のように述べています:「というエラーメッセージが表示されます。
MQL5からこれらの列挙を "コメントアウト "すると、それに従って動作する。これは、コードは動作するが、列挙を読み取ることができないということを意味するので、興味深い。
どなたか教えていただけると助かります。)
ありがとう、
MQHファイルでも、DLL内で宣言されたのと同じように列挙型を宣言する必要があると読みました。
string ReceiveEvent(int event_n); // Returns JSON string.. Use JAson.mqh to Deserialize objectsOnTimer() 内でこれを使用するにはどうすればよいですか?
記事で説明されているのと同じアプローチを使用しています。
質問ですが、ReceiveEvent関数の内部でどのようなintを渡す必要があるのでしょうか?無知で申し訳ありませんが、よくわかりません。
実行時にエラーを報告するGuiMtController.mq5プログラムのどこが悪いのか教えてください。