Обсуждение статьи "Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)" - страница 2

 

Alexander:
...

В связи с этим не подскажите какие надо вносить изменения в предыдущие примеры чтобы они заработали или может это уже было описано в какой-нибудь статье ? Конкретно, я хотел себе сделать панельку на основе примера из папки Article 7 TestLibrary05. Спасибо.

Скачайте пример из архива. В нём есть примеры почти всех элементов управления библиотеки в одном эксперте. 

Файлы:
 
   Скаченный пример из архива скомпилировался, но при загрузке его на график в журнале появилась запись " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) "  и после загрузки он вообще ни на что нериагирует и даже закрыть его невозможно, пришлось удалять график. У меня МТ5 последнего билда 1580 от 10 апреля.
 
Alexander:
   Скаченный пример из архива скомпилировался, но при загрузке его на график в журнале появилась запись " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) "  и после загрузки он вообще ни на что нериагирует и даже закрыть его невозможно, пришлось удалять график. У меня МТ5 последнего билда 1580 от 10 апреля.

К сожалению, пока не удалось воспроизвести Вашу проблему. У меня при тестировании этого эксперта проблем не возникает (тот же билд терминала). Уже не в первый раз сталкиваюсь с тем, что при тестировании одного и того же MQL-приложения у разных пользователей может быть разный результат. В общем, буду иметь в виду. Поставлю дополнительную проверку. Спасибо за сообщение.

При возникновении такой ошибки программа удаляется с графика, а все графические объекты созданные в ней остаются на графике, поэтому их нужно удалять вручную Ctrl + B.

 
  Самое странное что программа не удаляется, наверно потому что даже значка эксперта в верхнем правом углу не появляется, а в списке объектов нет ни одного. 
 
Alexander:
  Самое странное что программа не удаляется, наверно потому что даже значка эксперта в верхнем правом углу не появляется, а в списке объектов нет ни одного
Если значка эксперта нет, то это значит, что программа уже удалилась. Нажмите на кнопку 'Все' в окне 'Список объектов' (Ctrl + B).
 
Спасибо Анатолий!
Очень поучительный пример!
Особенно приятно, что работает и в МТ4.
Еще раз снимаю шляпу.
Ваша настойчивая и кропотливая работа восхищает.
Всех благ и хорошего настроения!
С Праздником.
 
Mikhail Dovbakh:
...
Особенно приятно, что работает и в МТ4.
...

Осторожнее с 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. Если текущий символ не пробел, а предыдущий пробел, то увеличиваем счётчик слов.
Причина обращения: