Скачать MetaTrader 5

Можно ли интегрировать шрифт с свою ex5 программу? И если можно то как это сделать?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужно пополнить счет? Пополняй удобным тебе способом!
Vasiliy Sokolov
21814
Vasiliy Sokolov 2014.06.24 09:57 

К сожалению документация по данному вопросу неоднозначна. С одной стороны в документации по функции TextSetFont есть интригующее примечание:

Примечание

Если в имени шрифта используется "::", то шрифт загружается из ресурса EX5. Если имя шрифта name указано с расширением, то шрифт загружается из файла, при этом – если путь начинается с "\" или "/", то файл ищется относительно каталога MQL5, иначе ищется относительно пути EX5-файла, вызвавшего функцию TextSetFont().

С другой стороны, в справке по включаемым ресурсам нет ни слова о том, что наряду с картинками и звуками можно интегрировать свои шрифты:

Для работы mql5-программы может потребоваться множество разнообразных загружаемых ресурсов в виде файлов изображений и звуков...

Я попробывал включить шрифт как ресурс по аналогии с картинками и звуками, однако у меня ничего не вышло.

Мое приложение использует различные шрифты для эмитации пользовательского графического интерфейса и мне очень важно единое представление шрифтов на всех машинах пользователей. К тому же когда шрифт зашит внутрь ex5 программы, исчезает необходимость в лицензировании шрифтов, ведь не все шрифты являются свободно распространяемыми. Ведь не совсем ясно на каком основании пользователь будет устанавливать шрифты со сторонних ресурсов, только что бы внешний вид программы соответствовал задумке автора. 

Ilyas
1205
Ilyas 2014.06.24 10:10  
Добавление шрифта в ресурсы в планах.
Vasiliy Aseev
276
Vasiliy Aseev 2014.06.25 03:44  
В Windows перед использованием шрифта его необходимо установить через панель управления -> шрифты. Затем его можно использовать.
Artyom Trishkin
Модератор
75896
Artyom Trishkin 2017.01.22 21:23  
Ilyas:
Добавление шрифта в ресурсы в планах.
@Ilyas, как насчёт этих планов? Три года прошло. Есть подвижки?
Vladimir Pastushak
69145
Vladimir Pastushak 2017.01.22 23:41  
Да, да, что с шрифтами ???
Slawa
Модератор
6842
Slawa 2017.01.23 07:25  
Vladimir Pastushak:
Да, да, что с шрифтами ???
Сделали
Vladimir Pastushak
69145
Vladimir Pastushak 2017.01.23 07:26  
Slawa:
Сделали
Когда ??? В текущих версии МТ 4 / 5 или в следующей ??? И как подключить там же несколько файлов с ttf ??
Ilyas
1205
Ilyas 2017.01.23 09:16  
MT5, билд 1510

//+------------------------------------------------------------------+
//|                                                         Font.mq5 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
#resource "\\Files\\a_LCDNova3DCmObl.ttf"

#include <Canvas\Canvas.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
input string InpMessage="Hello world!";   // message
input uint   InpSeconds=10;               // time in seconds
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ChartSetInteger(0,CHART_SHOW,0);
  
   CCanvas graph;
  
   graph.CreateBitmapLabel(0,0,"FONT",10,30,1320,200,COLOR_FORMAT_ARGB_NORMALIZE);
   graph.FontSet("::Files\\a_LCDNova3DCmObl.ttf",-240);
  
   uint timeout=GetTickCount()+InpSeconds*1000;
  
   while(!IsStopped())
     {
      graph.Erase(0);
      graph.TextOut(0,0,InpMessage + " ("+string((timeout-GetTickCount())/1000)+")",XRGB(255,255,255));
      graph.Update();
      
      if(GetTickCount()>timeout)
         break;
     }
    
   graph.Destroy();
  
   ChartSetInteger(0,CHART_SHOW,1);
  }
//+------------------------------------------------------------------+

Результат:


Архив со шрифтом необходимо распаковать в папку MQL5\Files
Устанавливать шрифт не нужно.

Файлы:
Font.mq5 2 kb
Andrey Barinov
39241
Andrey Barinov 2017.01.23 15:13  
Slawa:
Сделали
@Slawa А будет такое же для МТ4?
Evgeniy Zhdan
5542
Evgeniy Zhdan 2017.01.23 16:31  
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает. 
Vitalie Postolache
12145
Vitalie Postolache 2017.01.23 16:35  
Evgeniy Zhdan:
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает. 
Так include и resource - разные вещи. Ресурсом можно, маркет пропускает. Но не всякий файл можно подключить ресурсом, ДЛЛ нельзя, например.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий