Скачать MetaTrader 5

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

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

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

Примечание

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

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

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

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

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

Ilyas
1204
Ilyas  
Добавление шрифта в ресурсы в планах.
Vasiliy Aseev
290
Vasiliy Aseev  
В Windows перед использованием шрифта его необходимо установить через панель управления -> шрифты. Затем его можно использовать.
Artyom Trishkin
Модератор
84549
Artyom Trishkin  
Ilyas:
Добавление шрифта в ресурсы в планах.
@Ilyas, как насчёт этих планов? Три года прошло. Есть подвижки?
Vladimir Pastushak
82248
Vladimir Pastushak  
Да, да, что с шрифтами ???
Slava
Модератор
6971
Slava  
Vladimir Pastushak:
Да, да, что с шрифтами ???
Сделали
Vladimir Pastushak
82248
Vladimir Pastushak  
Slawa:
Сделали
Когда ??? В текущих версии МТ 4 / 5 или в следующей ??? И как подключить там же несколько файлов с ttf ??
Ilyas
1204
Ilyas  
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
39461
Andrey Barinov  
Slawa:
Сделали
@Slawa А будет такое же для МТ4?
Evgeniy Zhdan
6583
Evgeniy Zhdan  
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает. 
Vitalie Postolache
12443
Vitalie Postolache  
Evgeniy Zhdan:
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает. 
Так include и resource - разные вещи. Ресурсом можно, маркет пропускает. Но не всякий файл можно подключить ресурсом, ДЛЛ нельзя, например.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий