記事"グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2)"についてのディスカッション

 

新しい記事 グラフィカルインタフェースX: Easy And Fast (簡単で手早い)ライブラリの更新(ビルド2) はパブリッシュされました:

シリーズの前回の記事の出版以来、Easy And Fast ライブラリにはいくつかの新機能が加わりました。ライブラリの構造とコードは部分的に最適化され、CPUの負荷が少し軽減されています. 多くのコントロールクラスで繰り返して現れるメソッドは、CElement基本クラスに移動されました。

テストアプリケーションのグラフィカルインターフェイスには合計で8つのタブが含まれます。下のスクリーンショットは、コントロールの位置を示します。1 番目のタブは、(ボタングループを含む)すべてのボタンの種類と垂直スクロールバー付きのリストを含みます。「Simple Button 3」には2つのモードがあります。有効にされた場合、プロセスの実行をシミュレートするプログレスバーコントロールが見えるようになります。  

 図3 1番目のタブのグラフィカルインタフェースのコントロールのグループ

図3 1番目のタブのグラフィカルインタフェースのコントロールのグループ


作者: Anatoli Kazharski

 

質の高い仕事をしてくれた作者に感謝する。

 

ビデオを待っている。

そしてウインドウのダイナミズムをもっと実感できるように。可能であれば)。

私の意見では、これは全体の仕事の論理的な結論であり、提供されたライブラリの助けを借りて書かれたインターフェイスを完全に完成させるでしょう。

(この提案は、"興味のあるユーザー "の願望の表明である。それ以上ではありません)。

 

タブ1には3つのラジオボタンがありますが、この例では、何をどこに追加すれば、切り替え時に、押されたボタンの名前のアラートがポップアップするようになりますか?

p.s. この例では、MainWindow.mqh ファイルの bool CProgram::CreateTable 関数の中にCOLUMNS2_TOTALと ROWS2_TOTALという 2つの定義があり、同じ関数の中でCOLUMNS1_TOTALと ROWS1_TOTALという 定義が使われています。これはおそらくエラーです。

 
Alexey Oreshkin:

タブ1には3つのラジオ・ボタンがあります。この例では、何をどこに追加すれば、それらを切り替えたときに、押されたボタンの名前のアラートがポップアップするようになりますか?

カスタム・クラスCProgram::OnEvent()のイベント・ハンドラに、次のブロック・コードを追加してください:

//+------------------------------------------------------------------+
//| グラフ・イベント・ハンドラ|
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//...
//--- テキストラベルのクリックイベント
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_LABEL)
     {
      //--- ラジオボタンを押した場合
      if(lparam==m_radio_buttons1.Id())
        {
         ::Alert("element id (lparam): ",lparam,"; radio button index (dparam): ",(int)dparam,"; radio button description (sparam): ",sparam);
         return;
        }
      //---
      return;
     }
//...
  }

//---

結果


//---

p.s. この例では、MainWindow.mqh ファイルの bool 関数 CProgram::CreateTableに COLUMNS2_TOTALと ROWS2_TOTALという 2つの定義があり、同じ関数の中でCOLUMNS1_TOTALと ROWS1_TOTALという 定義が使われています。これはおそらくエラーでしょう。

別のファイルからコードを転送していて、修正するのを忘れていました。

 
Реter Konow:

ビデオを待っている。

そしてウインドウのダイナミズムをもっと実感できるように。可能であれば)。

私の意見では、これは全体の仕事の論理的な結論であり、提供されたライブラリの助けを借りて書かれたインターフェイスを完全に完成させるでしょう。

(この提案は、"興味のあるユーザー "の願望の表明である。それ以上ではありません)。

ウィンドウのダイナミズムのほかにも、完全に機能し、全体の作業の論理的な結論となるまでには、まだまだやるべきことがたくさんある。少なくともあと9つのコントロールが ある。また、インターフェイスの作成を簡単にするための改良も必要です。また、ヘルプ・ドキュメントを作成するのも悪くないだろう。より正確に言えば、それは必要なことでもあるのだが、開発が完全に終了してから行うつもりだ。これはまだ先の話だ。

 
Anatoli Kazharski:

完全に完成した状態と論理的な完成の前に、ウインドウのダイナミズムの他にもやらなければならないことがたくさんある。少なくともあと9つのコントロールがある。また、インターフェイスの作成を簡単にするための改良も必要だ。そして、ヘルプ・ドキュメントも作っても問題ないだろう。より正確に言えば、それは必要なことでもあるのだが、開発が完全に終了してから行うつもりだ。しばらくは無理ですね。

なるほど。

ウインドウのダイナミズムはメインじゃない。でも便利です。

他にどんなコントロールを 追加するつもりなのか、とても興味深いです。

インターフェイスの機能のデモンストレーションをビデオにするのですか?

あるいは、たとえばMAに取り組んでいる小さな専門家のために、インターフェイスを作る過程を撮影するとか。

最終的な結果を実際に見てみたい。

私自身、すべてをチェックしたいのですが、正直なところ、仕事がとても忙しいので時間がありません。

それに、このようなビデオはユーザーの注目を集めるかもしれない。

 
Реter Konow:

なるほど。

窓のダイナミズムはメインではない。でも便利だ。

他にどんなコントロールを追加するつもりですか?

インターフェイスの機能のデモンストレーションをビデオにするのですか?

あるいは、たとえばMAに取り組んでいる小さな専門家のために、インターフェイスを作る過程を撮影するとか。

最終的な結果を実際に見てみたい。

私自身、すべてをチェックしたいのですが、正直なところ、仕事がとても忙しいので時間がありません。

それに、このようなビデオはユーザーの注目を集めるかもしれない。

これだけでなく、もっと多くのことがすでに計画されている。MQL開発者が自分のプロジェクトでこのライブラリを使うのに役立つような実例もたくさん用意する予定だ。残念ながら、そのひとつひとつに多くの時間を割くことはできない。しかし、記事には時間を割くことができる。

要素からは、例えば

  • 要素「時間」。
  • 自動単語転送+スクロールバーを 備えた要素「テキスト・フィールド」。
  • 縦スクロールバー付きのラジオボタンとチェックボックスのリスト。
  • そしてもっとたくさん。

 
Anatoli Kazharski:

カスタム・クラスCProgram::OnEvent()のイベント・ハンドラーに、このコード・ブロックを追加してください:

ありがとう。そのようにしたのですが、Alertの 前に::を 入れなかったのがうまくいかなかった理由 です。
 
Alexey Oreshkin:
ありがとう。でも、Alertの 前に:: をつけなかったから、うまくいかなかったんだ。
Alertの前に:: をつけなかったのでうまくいきませんでした。エラーは別のものでした。
 
Anatoli Kazharski:
:: がなくても何の影響もないはずだ。エラーは他のものだった。

もしかしたらコードを削除してしまったのかもしれない。

このエラーは、インジケータが作成したウィンドウを十字で閉じたときに発生します。MainWindow.mqhをIndicatorsArticle 10の 例から少し変更しました。

作成したテーブルの行を削除する方法がわかりません。