文章 "图形界面 X: 多行文本框中的字词回卷算法 (集成编译 12)" - 页 2

 

Alexander:
...

在这方面,您能否告诉我应该对前面的示例做哪些修改才能使其生效,或者在某些文章中已经有所描述?具体来说,我想根据第 7 条 TestLibrary05 文件夹中的示例制作一个面板。谢谢。

从存档中下载示例。它在一个面板中包含了几乎所有库控件 的示例。

附加的文件:
 
从存档中下载的示例已编译,但将其加载到图表上时,日志显示了" 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalidpointer access in 'WndContainer.mqh' (430,38) "。加载后,它没有任何反应,即使关闭也不可能,我不得不删除图表。我的 MT5 是 4 月 10 日的最新版本 1580。
 
Alexander:
从存档中下载的示例已编译,但将其加载到图表上时,日志显示的条目为" 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) "。加载后,它没有任何反应,即使关闭也不可能,我不得不删除图表。我使用的是 MT5 最新版本 1580,日期是 4 月 10 日。

不幸的是,我还无法重现您的问题。我在测试此智能交易系统(相同版本的终端)时没有遇到任何问题。在测试同一个 MQL 应用程序时,不同的用户会得到不同的结果,这已经不是我第一次遇到这种情况了。一般来说,我会记住这一点。我会再做一次检查。感谢您的留言。

出现这种错误时,程序会从图表中删除,但在其中创建的所有图形对象仍会保留在图表中,因此您应按 Ctrl + B 手动删除它们。

 
最奇怪的是,程序并没有被卸载,可能是因为右上角连 EA 图标都没有出现,对象列表中也没有。
 
Alexander:
最奇怪的是,程序并没有被卸载,可能是因为右上角甚至没有出现专家顾问图标,对象列表中也没有
如果没有智能交易系统图标,说明程序已经卸载。点击"对象列表"窗口中的 "全部 "按钮(Ctrl + B)。
 
谢谢你,阿纳托利!
非常有启发性的例子
特别好的是,它在 MT4 中也能运行。
我再次向你致敬。
你坚持不懈的努力令人钦佩。
一切顺利,心情愉快!
节日快乐。
 
Mikhail Dovbakh:
...
它在 MT4 中也能运行,这一点特别好。
...

使用 MT4 时要小心,因为我已经有一段时间没有在该终端上测试该库了。

 

阿纳托利,这里有错别字吗?

   for(uint s=1; s<symbols_total; s++)
     {
      //--- 计数,如果(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(),但不会应用滚动条和wordwrapping。我需要按某个键。如何在不按任何键的情况下触发?