Вот текст на основе документации, тестирующий шрифт Wingdings для создаваемой кнопки:
//+------------------------------------------------------------------+//| Test_button.mq5 |//| Copyright 2025, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2025, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"#property description"Скрипт создает кнопку на графике."//--- покажем окно входных параметров при запуске скрипта #property script_show_inputs//--- входные параметры скрипта inputstring InpName="Button"; // Имя кнопки inputENUM_BASE_CORNER InpCorner=CORNER_LEFT_UPPER; // Угол графика для привязки //input string InpFont="Arial"; // Шрифт inputstring InpText="h"; // Текстinputstring InpFont="Wingdings"; // Шрифт inputint InpFontSize=14; // Размер шрифта inputcolor InpColor=clrBlack; // Цвет текста inputcolor InpBackColor=C'236,233,216'; // Цвет фона inputcolor InpBorderColor=clrNONE; // Цвет границы inputbool InpState=false; // Нажата/Отжата inputbool InpBack=false; // Объект на заднем плане inputbool InpSelection=false; // Выделить для перемещений inputbool InpHidden=true; // Скрыт в списке объектов inputlong InpZOrder=0; // Приоритет на нажатие мышью //+------------------------------------------------------------------+ //| Создает кнопку | //+------------------------------------------------------------------+ bool ButtonCreate(constlong chart_ID=0, // ID графика conststring name="Button", // имя кнопки constint sub_window=0, // номер подокна constint x=0, // координата по оси X constint y=0, // координата по оси Y constint width=50, // ширина кнопки constint height=18, // высота кнопки constENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // угол графика для привязки conststring text="Button", // текст conststring font="Arial", // шрифт constint font_size=10, // размер шрифта constcolor clr=clrBlack, // цвет текста constcolor back_clr=C'236,233,216', // цвет фона constcolor border_clr=clrNONE, // цвет границы constbool state=false, // нажата/отжата constbool back=false, // на заднем плане constbool selection=false, // выделить для перемещений constbool hidden=true, // скрыт в списке объектов constlong z_order=0) // приоритет на нажатие мышью
{
//--- сбросим значение ошибки ResetLastError();
//--- создадим кнопку if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
{
Print(__FUNCTION__,
": не удалось создать кнопку! Код ошибки = ",GetLastError());
return(false);
}
//--- установим координаты кнопки ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
//--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- установим текст ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- установим шрифт текста ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
//--- установим размер шрифта ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
//--- установим цвет текста ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим цвет фона ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
//--- установим цвет границы ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
//--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- переведем кнопку в заданное состояние ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
//--- включим (true) или отключим (false) режим перемещения кнопки мышью ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Перемещает кнопку | //+------------------------------------------------------------------+ bool ButtonMove(constlong chart_ID=0, // ID графика conststring name="Button", // имя кнопки constint x=0, // координата по оси X constint y=0) // координата по оси Y
{
//--- сбросим значение ошибки ResetLastError();
//--- переместим кнопку if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
{
Print(__FUNCTION__,
": не удалось переместить X-координату кнопки! Код ошибки = ",GetLastError());
return(false);
}
if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
{
Print(__FUNCTION__,
": не удалось переместить Y-координату кнопки! Код ошибки = ",GetLastError());
return(false);
}
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Изменяет размер кнопки | //+------------------------------------------------------------------+ bool ButtonChangeSize(constlong chart_ID=0, // ID графика conststring name="Button", // имя кнопки constint width=50, // ширина кнопки constint height=18) // высота кнопки
{
//--- сбросим значение ошибки ResetLastError();
//--- изменим размеры кнопки if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width))
{
Print(__FUNCTION__,
": не удалось изменить ширину кнопки! Код ошибки = ",GetLastError());
return(false);
}
if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height))
{
Print(__FUNCTION__,
": не удалось изменить высоту кнопки! Код ошибки = ",GetLastError());
return(false);
}
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Изменяет угол графика для привязки кнопки | //+------------------------------------------------------------------+ bool ButtonChangeCorner(constlong chart_ID=0, // ID графика conststring name="Button", // имя кнопки constENUM_BASE_CORNER corner=CORNER_LEFT_UPPER) // угол графика для привязки
{
//--- сбросим значение ошибки ResetLastError();
//--- изменим угол привязки if(!ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner))
{
Print(__FUNCTION__,
": не удалось изменить угол привязки! Код ошибки = ",GetLastError());
return(false);
}
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Изменяет текст кнопки | //+------------------------------------------------------------------+ bool ButtonTextChange(constlong chart_ID=0, // ID графика conststring name="Button", // имя кнопки conststring text="Text") // текст
{
//--- сбросим значение ошибки ResetLastError();
//--- изменим текст объекта if(!ObjectSetString(chart_ID,name,OBJPROP_TEXT,text))
{
Print(__FUNCTION__,
": не удалось изменить текст! Код ошибки = ",GetLastError());
return(false);
}
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Удаляет кнопку | //+------------------------------------------------------------------+ bool ButtonDelete(constlong chart_ID=0, // ID графика conststring name="Button") // имя кнопки
{
//--- сбросим значение ошибки ResetLastError();
//--- удалим кнопку if(!ObjectDelete(chart_ID,name))
{
Print(__FUNCTION__,
": не удалось удалить кнопку! Код ошибки = ",GetLastError());
return(false);
}
//--- успешное выполнение return(true);
}
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ voidOnStart()
{
//--- размеры окна графика long x_distance;
long y_distance;
//--- определим размеры окна if(!ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,x_distance))
{
Print("Не удалось получить ширину графика! Код ошибки = ",GetLastError());
return;
}
if(!ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0,y_distance))
{
Print("Не удалось получить высоту графика! Код ошибки = ",GetLastError());
return;
}
//--- определим шаг для изменения размеров кнопки int x_step=(int)x_distance/32;
int y_step=(int)y_distance/32;
//--- установим координаты кнопки и ее размер int x=(int)x_distance/32;
int y=(int)y_distance/32;
int x_size=(int)x_distance*2/16;
int y_size=(int)y_distance*2/16;
//--- создадим кнопку if(!ButtonCreate(0,InpName,0,x,y,x_size,y_size,InpCorner,InpText,InpFont,InpFontSize,
InpColor,InpBackColor,InpBorderColor,InpState,InpBack,InpSelection,InpHidden,InpZOrder))
{
return;
}
//--- перерисуем график ChartRedraw();
//--- в цикле уменьшаем кнопку int i=0;
//while(i<13)
{
//--- задержка в полсекунды Sleep(500);
//--- переведем кнопку в нажатое состояние ObjectSetInteger(0,InpName,OBJPROP_STATE,true);
//--- перерисуем график и подождем 0.2 секунды ChartRedraw();
Sleep(200);
//--- переопределим координаты и размер кнопки
x+=x_step;
y+=y_step;
x_size-=x_step*2;
y_size-=y_step*2;
//--- уменьшим кнопку
ButtonMove(0,InpName,x,y);
ButtonChangeSize(0,InpName,x_size,y_size);
//--- вернем кнопку в ненажатое состояние ObjectSetInteger(0,InpName,OBJPROP_STATE,false);
//--- перерисуем график ChartRedraw();
//--- проверим факт принудительного завершения скрипта if(IsStopped())
return;
//--- увеличим счетчик цикла
i++;
}
//--- задержка в полсекунды Sleep(500);
//--- удалим кнопку //ButtonDelete(0,InpName); ChartRedraw();
//--- подождем 1 секунду Sleep(1000);
//---
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Спасибо.
У вас это работает?
С номером 5482 проблем нет.
Как это воспроизвести?
Вот текст на основе документации, тестирующий шрифт Wingdings для создаваемой кнопки:
А вот результат для символа "h"
С номером 5482 проблем нет.
--
Проблема не решена
Ничего не изменилось, ошибка сталась - знаков на кнопках онлайн графика - нет, в тестере - есть.
Онлайн кнопки
В тестере:
Сегодня было обновление.
--
Проблема не решена
Странно, у меня проблем нет.
Вот текст на основе документации, тестирующий шрифт Wingdings для создаваемой кнопки:
А вот результат для символа "h"
Подтверждено. Сообщено.
Спасибо.
Сегодня было обновление.
Ничего не изменилось, ошибка сталась - знаков на кнопках онлайн графика - нет, в тестере - есть.
Онлайн кнопки
В тестере: