記事"グラフィカルインタフェースX: マルチラインテキストボックス内のワードラップアルゴリズム(ビルド12)"についてのディスカッション - ページ 2

 

Alexander:
...

この点に関して、それらを動作させるために、以前の例にどのような変更を加えるべきか、あるいは多分それは既にどこかの記事で説明されているのか、教えていただけますか?具体的には、Article 7 TestLibrary05フォルダの例に基づいてパネルを作りたいです。ありがとうございます。

アーカイブから例をダウンロードしてください。一つのパネルにほとんど全てのライブラリコントロールの 例があります。

ファイル:
 
Alexander:
アーカイブからダウンロードしたサンプルはコンパイルできたのですが、チャートに読み込むとログに「2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) ".と表示され、読み込んだ後は全く反応せず、閉じることもできず、チャートを削除するしかありませんでした。MT5は4月10日付の最新ビルド1580です。

残念ながら、この問題はまだ再現できていません。このExpert Advisor(ターミナルの同じビルド)をテストする際には問題はありません。同じMQLアプリケーションをテストする際に、ユーザーによって結果が異なるという事実に遭遇するのは初めてではありません。一般的に、私は心に留めておきます。追加のチェックを入れます。メッセージをありがとうございます。

このようなエラーが発生した場合、プログラムはチャートから削除され、その中で作成されたすべてのグラフィカル・オブジェクトはチャート上に残ります。

 
一番不思議なのは、プログラムがアンインストールされていないことだ。おそらく、右上にEAのアイコンすら表示されず、オブジェクトのリストにも何もないからだろう。
 
Alexander:
最も奇妙なことは、プログラムがアンインストールされていないことである。おそらく、右上隅にEAアイコンさえ表示されず、オブジェクトのリストにも何も ないからであろう。
Expert Advisorのアイコンがない場合は、プログラムがすでにアンインストールされていることを意味します。オブジェクトリスト」ウィンドウの「すべて」ボタンをクリック します(Ctrl + B)。
 
アナトリーさん、ありがとうございます!
とても勉強になる例です
特にMT4でも使えるのがいいですね。
改めて脱帽です。
あなたの根気強い努力は賞賛に値します。
万歳、ご機嫌よう!
よい休日を。
 
Mikhail Dovbakh:
...
MT4でも動くのが特にいい。
...

MT4では、以前からこのターミナルでのライブラリのテストは全くしていないので、要注意。

 

アナトリー、ここにタイプミスはありませんか?

   for(uint s=1; s<symbols_total; s++)
     {
      //--- カウント if(2) дошли до конца строки или (2)  нашли пробел (конец слова)
      if(s+1==symbols_total || (m_lines[l].m_symbol[s]!=SPACE && m_lines[l].m_symbol[s-1]==SPACE))
         words_counter++;
     }
//--- 単語数を返す
   return(words_counter);

そうでなければ、その論理を説明してください

 
Rashid Umarov:

アナトリー、ここにタイプミスはありませんか?

そうでなければ、論理的に説明してください。

タイプミスです。(1)(2)

論理は簡単です。現在の行の単語を数える。ここでいう単語とは、連続した文字列の ことである(スペースは含まない)。

  1. 文字列の終端に達したなら、単語カウンターを増やす。
  2. 現在の文字がスペースではなく、前のスペースであれば、ワード・カウンターを増やす。
 
プログラムで新しい行を追加し、UpdateTextBox()を呼び出しますが、スクロールバーとワードラッピングが適用されません。何かキーを押す必要があります。キーを押さずにこれをトリガーするにはどうすればよいでしょうか?