記事"カスタムグラフィックコントロールパート1:簡単なコントロールを作成する"についてのディスカッション - ページ 2

 
Urain:

単純なコードを作成する例はすでに十分にあるが、成功するクラス階層を作成する例や、少なくとも普遍的で容易に変形可能な製品の実装しやすいスキームを作成する例は十分ではない。MQの標準的なクラスでさえ、あらかじめ可能性を敷き詰めてしまうことで、プログラムを書くことを複雑にしてしまうことが多い。

そういうことだ。

まずシステム全体としてのデモンストレーションが必要だ。まずアーキテクチャー。そして、それぞれのレンガ、つまり特定のコントローラーが、その中でどのような位置を占めているかを示すこと。

そして、これらのコントロールの働きのデモンストレーションに移る(MFCには申し訳ないが、ちょうどいい絵だ)。



 
sergeev:

オーケー。これはとてもいいことだ。

第2部で高レベルの機能について話せば、人々は記事のコンポーネントを早く使い始めるでしょう。
私なら、やはりフォーム+ボタン(+入力ボックス)から始めて、第3部でリストやメニューなどの特定のコントロール・コンポーネントについて話します。

結局のところ、タスクはそのようなコントロールの書き方を教えることです。しかし、それらを挿入するフォームがない限り、この記事はそのような壮大で必要な効果を与えません。
それに、2番目の記事ですでにフォーム+ボタン(ラジオ、プッシュ、チェックの3種類という意味です)+EditBoxを与えれば、ユーザーはクラスを全体として見ることができ、自分自身のコントロールを独立して作成できるようになります。


フォームと対話するために、コントロールは4つのメソッドInit(...)、Show(X,Y)、Hide()、Event()を持たなければならない。だから、すでに独自のコントローラを書くことができる。

それでも、私は自分の計画に固執するつもりだ。第3部では、すべてのコントロールを 含んだフォームを用意するつもりだ。

 
Integer:

第3部では、すべてのコントロールを備えたフォームを作る予定です。

わかった。)
 

トピックは関連性がある...取り上げてくれてありがとう...。

ただ、記事とコメントを読んで思ったのは、アルゴリズムの本質を実装するのは少し難しいということです。

次のようなアルゴリズムの方がシンプルで普遍的なのでは?

強力なエディタ(例えばVisual Studio)があれば、どんな言語でもコントロールボタン付きのパネルを実装できる。

そして、それ(ボタンやその他の機能を備えたコントロールパネルを実装するためのプログラム)は、MT5から独立して自律的に動作します。

これらの結果はファイルに入力され、そこからMT5が定期的に読み出します(割り込みを設定するのもよいでしょう)。

したがって、プログラミングのプロセスは簡素化され、普遍性(どのようなプログラムでも動作し、MT4でも動作する能力)があります。

したがって、主な問題は、結果のパラメータファイルとプログラム本体とのドッキングになるでしょう。

この方向で、私はMT5の進化を見たいのであって、ありきたりの機能拡張を見たいわけではない......。

また、RAM経由の交換も問題ないでしょう。

また、ウェブ経由での接続も考えられるでしょう......かなり面白いでしょう。

どう思う?

 
第4原則が理解できませんでした。何か例を挙げていただけますか?
 

第4原則が理解できません。例を挙げていただけますか?

 
LeoAndriolo:

第4原則が理解できません。例を挙げてもらえますか?

レオさん、第4の原則とは具体的に何を指しているのですか?この記事のトピック4は「コントロールの ためのワークピース」に関するものだと理解しています。ご質問の内容をもう少し詳しく教えてください。
 
Malacarne:
レオ、第4の原則とは具体的に何を指しているのですか?この記事のトピック4は「コントロールのためのワークピース」に関するものだと理解しています。ご質問の内容をもう少し詳しく教えてください。
1.1.4
 

長方形とボックスといくつかの情報を組み合わせたカスタムグラフィックオブジェクトを作成したいと思います。このオブジェクトは頻繁に使用するので、簡単にアクセスできるのが理想です。カスタム作成したグラフィカル・オブジェクトをMT5ツールバーに追加することは可能ですか?もし可能でなければ、他の提案をお願いします。

 

おかしいな...。

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }

こうあるべきじゃないか

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   Attach(aName,aChartID);
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
  }

あるいは、こんな感じ。

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(aChartID,aName,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }