Добавление шрифта в ресурсы в планах.
В Windows перед использованием шрифта его необходимо установить через панель управления -> шрифты. Затем его можно использовать.
Да, да, что с шрифтами ???
Vladimir Pastushak:
Да, да, что с шрифтами ???
Сделали
Да, да, что с шрифтами ???
Slawa:
Сделали
Когда ??? В текущих версии МТ 4 / 5 или в следующей ??? И как подключить там же несколько файлов с ttf ??
Сделали
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);
}
//+------------------------------------------------------------------+
//| 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
a_LCDNova3DCmObl.zip
13 kb
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает.
Evgeniy Zhdan:
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает.
Так include и resource - разные вещи. Ресурсом можно, маркет пропускает. Но не всякий файл можно подключить ресурсом, ДЛЛ нельзя, например.
А можно ли подключать ресурсы для продуктов, предназначенных для маркета? В МТ4, например, ничего нельзя include, в маркет не пропускает.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К сожалению документация по данному вопросу неоднозначна. С одной стороны в документации по функции TextSetFont есть интригующее примечание:
Примечание
Если в имени шрифта используется "::", то шрифт загружается из ресурса EX5. Если имя шрифта name указано с расширением, то шрифт загружается из файла, при этом – если путь начинается с "\" или "/", то файл ищется относительно каталога MQL5, иначе ищется относительно пути EX5-файла, вызвавшего функцию TextSetFont().
С другой стороны, в справке по включаемым ресурсам нет ни слова о том, что наряду с картинками и звуками можно интегрировать свои шрифты:
Для работы mql5-программы может потребоваться множество разнообразных загружаемых ресурсов в виде файлов изображений и звуков...
Я попробывал включить шрифт как ресурс по аналогии с картинками и звуками, однако у меня ничего не вышло.
Мое приложение использует различные шрифты для эмитации пользовательского графического интерфейса и мне очень важно единое представление шрифтов на всех машинах пользователей. К тому же когда шрифт зашит внутрь ex5 программы, исчезает необходимость в лицензировании шрифтов, ведь не все шрифты являются свободно распространяемыми. Ведь не совсем ясно на каком основании пользователь будет устанавливать шрифты со сторонних ресурсов, только что бы внешний вид программы соответствовал задумке автора.