記事"MQL5 クックブック: インジケーターサブウィンドウコンソールースクロールバー"についてのディスカッション

 

新しい記事 MQL5 クックブック: インジケーターサブウィンドウコンソールースクロールバー はパブリッシュされました:

様々なコントロールを試してみましょう。今回はスクロールバーを紹介します。"MQL5クックブック:インジケーターサブウィンドウコンソール - ボタン"という以前の記事のように、インジケーターサブウィンドウにて作業を進めます。OnChartEvent()関数にてイベントを扱う詳しい詳細を提供しているので、上記の記事を読んでみてください。この点はこの記事においても言及されます。 今回はMQL5リソースを用いて取得される金融商品情報の大きなリストのための垂直スクロールバーを作成します。

MQL5プログラミングに関する以前の記事にて、OBJ_LABEL (テキストラベル)グラフィカルオブジェクトをリスト作成のために使用しました。この記事では、テキストを表示するキャンバスを使用します。そのようなアプローチの利便性は、OBJ_LABELオブジェクトの代わりに- OBJ_BITMAP_LABEL (ビットマップラベル)のみを用いるためです。キャンバスにすべてのインターフェースエレメントを描画することができますが、今回はテキストのみに限ります。

そのスクロールバーはとてもシンプルです。普通矢印ボタンがありますが、この場合はありません。そんスクロールボタンはバックグラウンドとスクロー ルボックスのみから成り立ちます。スクロールボックスは、カーソルが図上を移動した際に色を変更します。クリックされた際、スクロールボックスが選択さ れ、ドラッグされていることをユーザーに示すため色を変更します。スクロールオブジェクトを作成する際、OBJ_RECTANGLE_LABEL(長方形ラベル) タイプのグラフィカルオブジェクトを使用します。

MQL5 Cookbook: Indicator Subwindow Controls - Scrollbar

作者: Anatoli Kazharski

 
最近、私はアナトーリの記事をすべて見ていますが、彼は素晴らしいコーダーだと言わざるを得ません。さらに、彼は自分の知識を私のようなMT5プログラミング言語の初心者と共有してくれています。今後もアナトーリさんの記事が掲載されることを期待しています。
 

Anatoly、あなたの仕事と労力に感謝します!

質問があるのですが、標準の Scrolls.mqhライブラリから CScroll クラスを使用する例はありますか?

 
thejobber:

Anatoly、あなたの仕事と労力に感謝します!

標準ライブラリ Scrolls.mqh の CScroll クラスを使用する例はありますか?

ありがとうございます。

コントロールのインターフェースを開発するのに標準ライブラリは使いません。

 
thejobber:

Anatolyさん、お疲れ様でした!

標準ライブラリの Scrolls.mqhからCScrollクラスを使用する例はありますか?

標準ライブラリに例があります。


 
ありがとう、まだこの例を回していたんだ...。気づかなかった、一言で言うとバカだった ))
 
ビジュアライゼーション・ロジックを少し設計し直さないといけないね...。ラベルを作成していたのですが、以前はラベルの数がわからなかったので、フォームにスクロールを追加しようと考えていました。)
 
CListViewの 個々のアイテムの色を変更できますか?
 

こんにちは

こんにちは、Anatoli Kazharskiです。

このトピックはとても古いのですが、とても役に立ったのでお礼を言いたいです。

私はスクロールバーが必要でしたが、ListViewsで使用されているのを見つけることができました。

ただ、この部分は論理的には常に動作するのでしょうが、あなたが書こうとしたこととは違うかもしれないことに気づきました:

//+------------------------------------------------------------------+
//| カーソルが上に来たときのスクロールボックスの色を変更する。
//+------------------------------------------------------------------+
void ChangeScrollbarThumbColorOnHover(int x,int y)
  {
//--- カーソルがスクロールボックスの範囲内にある場合は、色を濃くする。
   if(x>scrollbar_thumb_x1 && x<scrollbar_thumb_x2 && y>scrollbar_thumb_y1 && y<scrollbar_thumb_x2)

      SetScrollbarThumbColor(scrollbar_thumb_color_on_hover);
//--- カーソルがスクロールボックスの境界線の外側にある場合
   else
     {
      //--- マウスボタンが離されたら、標準のスクロールボックスの色を設定する。
      if(!mouse_button_state)
         SetScrollbarThumbColor(scrollbar_thumb_color);
     }
  }

本当にありがとうございました。