Библиотеки: Easy Canvas - страница 14

 
Nikolai Semko #:

добрался до компьютера:



Ваше здоровье Николай!

Благодарю.

 

Есть реализация как размещать текст с прилеганием? 

Аналог Align какой нибудь. Или хотябы функцию которая получает размер блока текста.

 
Petr Zharuk #:

Есть реализация как размещать текст с прилеганием? 

Аналог Align какой нибудь. Или хотябы функцию которая получает размер блока текста.

https://www.mql5.com/ru/docs/standardlibrary/canvasgraphics/ccanvas/ccanvastextsize

https://www.mql5.com/ru/docs/standardlibrary/canvasgraphics/ccanvas/ccanvastextout

 

Николай, а есть наработки или примеры взаимодействия с элементами интерфейса написанного на Канве?

Например есть две кнопки Canvas.Rectangle. 

Как проверять нажатие на одну из них кроме варианта сверки координат мыши и кнопок?

 
Petr Zharuk #:

Николай, а есть наработки или примеры взаимодействия с элементами интерфейса написанного на Канве?

Например есть две кнопки Canvas.Rectangle. 

Как проверять нажатие на одну из них кроме варианта сверки координат мыши и кнопок?

Пока нет 
 

Приветствую, Николай.

В процессе использования библиотеки столкнулся с проблемой: если в одном терминале используется несколько программ с iCanvas, то после перезагрузки терминала изображения начинают самопроизвольно меняться с одного на другое. Сначала искал причины в своем коде, но так ничего и не нашел. Потом один из моих клиентов совершенно случайно обратил внимание на то, что на разных графиках совпадают имена объектов iCanvas. 

Посмотрел, как генерируется имя объекта для iCanvas и обнаружил следующее:

Name+=IntegerToString(GetTickCount());

 Такой способ при загрузке терминала как раз и приводит к получению одинаковых имен объектов на разных чартах, если речь идет о советниках, т. к. все советники в терминале при загрузке получают одно и то же значение GetTickCount(). У индикаторов такой проблемы нет.

Для решения проблемы предлагаю такой способ генерации уникального имени объекта:

   Name += IntegerToString(ChartID()) + IntegerToString(GetTickCount());

Здесь уникальность гарантируется следующими соображениями:

  1. Индикаторы получают разное значение GetTickCount() даже если все они запущены на одном графике. Поэтому для них такой способ работает.
  2. Советники получают одинаковое значение GetTickCount(), но так как советник может быть на графике только один, то его объект получает уникальность за счет идентификатора графика.
 
Ihor Herasko #:

Приветствую, Николай.

В процессе использования библиотеки столкнулся с проблемой: если в одном терминале используется несколько программ с iCanvas, то после перезагрузки терминала изображения начинают самопроизвольно меняться с одного на другое. Сначала искал причины в своем коде, но так ничего и не нашел. Потом один из моих клиентов совершенно случайно обратил внимание на то, что на разных графиках совпадают имена объектов iCanvas. 

Посмотрел, как генерируется имя объекта для iCanvas и обнаружил следующее:

 Такой способ при загрузке терминала как раз и приводит к получению одинаковых имен объектов на разных чартах, если речь идет о советниках, т. к. все советники в терминале при загрузке получают одно и то же значение GetTickCount(). У индикаторов такой проблемы нет.

Для решения проблемы предлагаю такой способ генерации уникального имени объекта:

Здесь уникальность гарантируется следующими соображениями:

  1. Индикаторы получают разное значение GetTickCount() даже если все они запущены на одном графике. Поэтому для них такой способ работает.
  2. Советники получают одинаковое значение GetTickCount(), но так как советник может быть на графике только один, то его объект получает уникальность за счет идентификатора графика.

Согласен. 
Спасибо, Игорь!
Залил исправленную версию.

Странно, я думал, что у меня так и формировалось имя. :))

 
обновил версию до 1.49
укоротил имя ресурса, т.к. нарвался на слишком длинное имя
 

 Nikolai Semko #:
 обновил версию до 1.49
 укоротил имя ресурса, т.к. нарвался на слишком длинное имя

Добрый день!
В файле iCanvas.mqh (по ссылке на MT5 версию) стоит "#property version   "1.09"...
Где можно скачать последнюю актуальную версию?
И про версию для MT4 тоже вопрос - в скачиваемом архиве версия "#property version   "1.47"
- это последняя для  MT4? И если нет - то где можно  скачать последнюю актуальную версию?

Спасибо.

 
Maksims Ignatovs #:

Добрый день!
В файле iCanvas.mqh (по ссылке на MT5 версию) стоит "#property version   "1.09"...
Где можно скачать последнюю актуальную версию?
И про версию для MT4 тоже вопрос - в скачиваемом архиве версия "#property version   "1.47"
- это последняя для  MT4? И если нет - то где можно  скачать последнюю актуальную версию?

Спасибо.

Приветствую!
Вы наверное скачиваете zip файл. Никогда его не скачивайте. Это недоработка MQ. Когда я обновляю версию, zip файл не перезаписывается, а доступа у меня нет к нему. 
Кликните мышкой по самому файлу iCanvas.mqh или скопируйте из просмотра