Можно ли определить длину строки OBJ_LABEL в пикселях?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
leon_17
181
leon_17  

Есть условная задача:

На график нужно вывести два объекта типа OBJ_LABEL в одну строку друг за другом. При этом до самого момента срабатывания кода мы не знаем какую именно информацию будут выводить эти объекты.

Например в одну строку надо вывести AccountInfoString(ACCOUNT_COMPANY) и AccountInfoString(ACCOUNT_SERVER) и каждое название должно поддерживать свое собственное форматирование (цвет, размер букв итп). То есть вывод этих данных в одной переменной и в одном объекте не подходит.

Учитывая, что мы не знаем длину названия компании (первый объект), как разместить название сервера (второй объект), чтобы оба объекта не наложились бы вдруг друг на друга (если название компании окажется слишком длинным) или не оказались бы слишком далеко друг от друга (если название компании окажется слишком коротким)?

Я это вижу так, что для того чтобы найти координаты для второго объекта, нужно сначала вычислить где заканчивается первый. И вот как это сделать?

 p.s. Повторюсь задача условная! Интересует сама возможность динамического связывания расположения объектов между собой.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Igor Zakharov
6653
Igor Zakharov  
https://www.mql5.com/ru/forum/6343/page1150#comment_14008242
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2019.11.25
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
Taras Slobodyanik
38178
Taras Slobodyanik  
Igor Zakharov:
https://www.mql5.com/ru/forum/6343/page1150#comment_14008242

это для канваса

пс. хотя в справке есть примечание:

Чтобы получить на экране текст такого же размера, как и в объекте OBJ_LABEL, возьмите указанный в свойствах объекта размер шрифта и умножьте на -10.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Alexey Viktorov
27724
Alexey Viktorov  
Taras Slobodyanik:

это для канваса

Прочтите с начала этой страницы.

Taras Slobodyanik
38178
Taras Slobodyanik  
Alexey Viktorov:

Прочтите с начала этой страницы.

в справке написано нужно умножать на -10, не вижу этого на той странице

Alexey Viktorov
27724
Alexey Viktorov  
Taras Slobodyanik:

в справке написано нужно умножать на -10, не вижу этого на той странице

А функцию и проверочный скрипт видите?

Taras Slobodyanik
38178
Taras Slobodyanik  
Alexey Viktorov:

А функцию и проверочный скрипт видите?

проверил, показывает неправильно для OBJ_LABEL

11
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Igor Zakharov
6653
Igor Zakharov  
Taras Slobodyanik:

в справке написано нужно умножать на -10, не вижу этого на той странице

это про высоту

Taras Slobodyanik
38178
Taras Slobodyanik  
Igor Zakharov:

это про высоту

это про размер шрифта

Igor Zakharov
6653
Igor Zakharov  
Taras Slobodyanik:

это про размер шрифта

размер шрифта = высота в пикселях. топикстартеру нужна ширина теста.

Taras Slobodyanik
38178
Taras Slobodyanik  
Igor Zakharov:

размер шрифта = высота в пикселях. топикстартеру нужна ширина теста.

чтобы найти ширину текста, нужно умножить размер шрифта на -10

вы проверяли тот код который вы предложили?
сверху моя картинка - измерьте ширину и высоту надписи, и сравните с тем, что показывает ваш скрипт.

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий