0
Views
0
Downloads
0
Favorites
Fonts
//+------------------------------------------------------------------+
//| FONTS.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property indicator_chart_window
input color backdrop_clr=clrDarkSlateGray;
input color code_clr=clrGold;
input color font_clr=clrWhiteSmoke;
input color button_clr=clrMidnightBlue;
input int x_dist=10;
input int y_dist=15;
extern string font_edit="Terminal";
bool button_1=true;
bool start=true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+--------------;----------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
EventSetTimer(1);
//---
return(INIT_SUCCEEDED);
}
//==================================================================
void OnDeinit(const int reason)
{
f_Delete();
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
char code=32;
int u=32;
ObjectGetString(0,"Panel_1",OBJPROP_TEXT,0,font_edit);
if(button_1 && start)
{
start=false;
RectLabelCreate("LabelCreate",x_dist,y_dist,970,400,backdrop_clr,backdrop_clr);
for(int t=1;t<=7;t++)
{
for(int r=0;r<=31;r++)
{
f_Label("text_"+(string)r+(string)t,x_dist+12+30*r,y_dist+17+50*t,CharToStr(code),15,font_clr,font_edit);
f_Label("numb_"+(string)r+(string)t,x_dist+12+30*r,y_dist+50*t,(string)u,8,code_clr);
code++; u++;
}
}
if(ObjectFind("butt_1")!=-1) ObjectDelete("butt_1");
ButtonCreate("butt_2",x_dist+25,y_dist+5,120,20,"Wingdings",9,font_clr,button_clr,false);
ButtonCreate("butt_3",x_dist+148,y_dist+5,120,20,"Wingdings 2",9,font_clr,button_clr,false);
ButtonCreate("butt_4",x_dist+271,y_dist+5,120,20,"Wingdings 3",9,font_clr,button_clr,false);
ButtonCreate("butt_5",x_dist+394,y_dist+5,120,20,"Arial",9,font_clr,button_clr,false);
ButtonCreate("butt_6",x_dist+847,y_dist+5,120,20,"Enter",9,font_clr,button_clr,false);
EditCreate("Panel_1",font_edit,x_dist+517,y_dist+5,327,20);
}
ButtonCreate("butt_1",x_dist+4,y_dist+5,20,20,CharToStr(84),16,font_clr,button_clr,false,"Wingdings 2");
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--------------êíîïêà "X"----------------------------------
if(sparam=="butt_1" && !button_1)
{
button_1=true;start=true; return;
}
if(sparam=="butt_1" && button_1)
{
button_1=false; f_Delete();start=true;
}
//--------------êíîïêà "Wingdings"----------------------------------
if(sparam=="butt_2")
{
font_edit="Wingdings"; f_Delete();start=true;
}
//--------------êíîïêà "Wingdings 2"----------------------------------
if(sparam=="butt_3")
{
font_edit="Wingdings 2"; f_Delete();start=true;
}
//--------------êíîïêà "Wingdings 3"----------------------------------
if(sparam=="butt_4")
{
font_edit="Wingdings 3"; f_Delete();start=true;
}
//--------------êíîïêà "Arial"----------------------------------
if(sparam=="butt_5")
{
font_edit="Arial"; f_Delete();start=true;
}
//--------------êíîïêà "enter"----------------------------------
if(sparam=="butt_6")
{
f_Delete(); start=true;
}
}
//+------------------------------------------------------------------+
// Óäàëÿåì îáúåêòû
//+------------------------------------------------------------------+
void f_Delete()
{
ObjectDelete("butt_1");
ObjectDelete("butt_2");
ObjectDelete("butt_3");
ObjectDelete("butt_4");
ObjectDelete("butt_5");
ObjectDelete("butt_6");
ObjectDelete("LabelCreate");
ObjectDelete("Panel_1");
for(int w=1;w<=7;w++)
{
for(int e=0;e<=31;e++)
{
ObjectDelete("text_"+(string)e+(string)w);
ObjectDelete("numb_"+(string)e+(string)w);
}
}
}
//+------------------------------------------------------------------+
//| Ñîçäàåò ïðÿìîóãîëüíóþ ìåòêó |
//+------------------------------------------------------------------+
bool RectLabelCreate(
const string name="RectLabel", // èìÿ ìåòêè
const int x=0, // êîîðäèíàòà ïî îñè X
const int y=0, // êîîðäèíàòà ïî îñè Y
const int width=500, // øèðèíà
const int height=180, // âûñîòà
const color back_clr=clrRed, // öâåò ôîíà
const color clr=clrRed, // öâåò ïëîñêîé ãðàíèöû (Flat)
//---------------------------------------------------------------------------
const ENUM_LINE_STYLE style=STYLE_SOLID, // ñòèëü ïëîñêîé ãðàíèöû
const int line_width=1, // òîëùèíà ïëîñêîé ãðàíèöû
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=false, // ñêðûò â ñïèñêå îáúåêòîâ
const long chart_ID=0, // ID ãðàôèêà
const int sub_window=0, // íîìåð ïîäîêíà
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // óãîë ãðàôèêà äëÿ ïðèâÿçêè
const ENUM_BORDER_TYPE border_lab=BORDER_FLAT, // òèï ãðàíèöû
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
//--- ñáðîñèì çíà÷åíèå îøèáêè
ResetLastError();
if(ObjectFind(name)==-1)
{
//--- ñîçäàäèì ïðÿìîóãîëüíóþ ìåòêó
ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
//--- óñòàíîâèì êîîðäèíàòû ìåòêè
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_BGCOLOR,back_clr);
//--- óñòàíîâèì òèï ãðàíèöû
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border_lab);
//--- óñòàíîâèì óãîë ãðàôèêà, îòíîñèòåëüíî êîòîðîãî áóäóò îïðåäåëÿòüñÿ êîîðäèíàòû òî÷êè
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- óñòàíîâèì öâåò ïëîñêîé ðàìêè (â ðåæèìå Flat)
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- óñòàíîâèì ñòèëü ëèíèè ïëîñêîé ðàìêè
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- óñòàíîâèì òîëùèíó ïëîñêîé ãðàíèöû
ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
//--- îòîáðàçèì íà ïåðåäíåì (false) èëè çàäíåì (true) ïëàíå
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- âêëþ÷èì (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 f_Label(
const string name="Label", // èìÿ ìåòêè
const int x=0, // êîîðäèíàòà ïî îñè X
const int y=0, // êîîðäèíàòà ïî îñè Y
const string text="error", // òåêñò
const int font_size=10, // ðàçìåð øðèôòà
const color clr=clrRed, // öâåò
//------------------------------------------------------
const string font="Arial", // øðèôò
const double angle=0.0, // íàêëîí òåêñòà
const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // ñïîñîá ïðèâÿçêè
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=true, // ñêðûò â ñïèñêå îáúåêòîâ
const long chart_ID=0, // ID ãðàôèêà
const int sub_window=0, // íîìåð ïîäîêíà
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // óãîë ãðàôèêà äëÿ ïðèâÿçêè
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
//--- ñáðîñèì çíà÷åíèå îøèáêè
ResetLastError();
if(ObjectFind(name)==-1)
{
//--- ñîçäàäèì òåêñòîâóþ ìåòêó
ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0);
//--- óñòàíîâèì êîîðäèíàòû ìåòêè
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
//--- óñòàíîâèì óãîë ãðàôèêà, îòíîñèòåëüíî êîòîðîãî áóäóò îïðåäåëÿòüñÿ êîîðäèíàòû òî÷êè
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);
//--- óñòàíîâèì óãîë íàêëîíà òåêñòà
ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
//--- óñòàíîâèì ñïîñîá ïðèâÿçêè
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
//--- óñòàíîâèì öâåò
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- îòîáðàçèì íà ïåðåäíåì (false) èëè çàäíåì (true) ïëàíå
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- âêëþ÷èì (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);
}
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
return(true);
}
//===============êíîïêè==============================================
bool ButtonCreate(const string name="button", // èìÿ êíîïêè
const int x=0, // êîîðäèíàòà ïî îñè X
const int y=0, // êîîðäèíàòà ïî îñè Y
const int width=0, // øèðèíà êíîïêè
const int height=0, // âûñîòà êíîïêè
const string text="error", // òåêñò
const int font_size=6, // ðàçìåð øðèôòà
const color clr=clrNONE, // öâåò òåêñòà
const color back_clr=clrNONE, // öâåò ôîíà
const bool state=false, // íàæàòà/îòæàòà
const string font="Arial", // øðèôò
const color border_clr=clrNONE, // öâåò ãðàíèöû
//------------------------------------------------
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=false, // ñêðûò â ñïèñêå îáúåêòîâ
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
//--- ñáðîñèì çíà÷åíèå îøèáêè
ResetLastError();
if(ObjectFind(name)==-1)
{
//--- ñîçäàäèì êíîïêó
ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- óñòàíîâèì êîîðäèíàòû êíîïêè
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- óñòàíîâèì ðàçìåð êíîïêè
ObjectSetInteger(0,name,OBJPROP_XSIZE,width);
ObjectSetInteger(0,name,OBJPROP_YSIZE,height);
//--- óñòàíîâèì óãîë ãðàôèêà, îòíîñèòåëüíî êîòîðîãî áóäóò îïðåäåëÿòüñÿ êîîðäèíàòû òî÷êè
ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
//--- óñòàíîâèì òåêñò
ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- óñòàíîâèì øðèôò òåêñòà
ObjectSetString(0,name,OBJPROP_FONT,font);
//--- óñòàíîâèì ðàçìåð øðèôòà
ObjectSetInteger(0,name,OBJPROP_FONTSIZE,font_size);
//--- óñòàíîâèì öâåò òåêñòà
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- óñòàíîâèì öâåò ôîíà
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,back_clr);
//--- óñòàíîâèì öâåò ãðàíèöû
ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,border_clr);
//--- îòîáðàçèì íà ïåðåäíåì (false) èëè çàäíåì (true) ïëàíå
ObjectSetInteger(0,name,OBJPROP_BACK,back);
//--- âêëþ÷èì (true) èëè îòêëþ÷èì (false) ðåæèì ïåðåìåùåíèÿ êíîïêè ìûøüþ
ObjectSetInteger(0,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(0,name,OBJPROP_SELECTED,selection);
//--- ñêðîåì (true) èëè îòîáðàçèì (false) èìÿ ãðàôè÷åñêîãî îáúåêòà â ñïèñêå îáúåêòîâ
ObjectSetInteger(0,name,OBJPROP_HIDDEN,hidden);
//--- óñòàíîâèì ïðèîðèòåò íà ïîëó÷åíèå ñîáûòèÿ íàæàòèÿ ìûøè íà ãðàôèêå
ObjectSetInteger(0,name,OBJPROP_ZORDER,z_order);
//----- íàæàòà/îòæàòà
ObjectSetInteger(0,name,OBJPROP_STATE,state);
}
//--- óñïåøíîå âûïîëíåíèå
return(true);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ñîçäàåò îáúåêò "Ïîëå ââîäà" |
//+------------------------------------------------------------------+
bool EditCreate(
const string name="Edit", // èìÿ îáúåêòà
const string text="Arial", // òåêñò
const int x=110, // êîîðäèíàòà ïî îñè X
const int y=110, // êîîðäèíàòà ïî îñè Y
const int width=90, // øèðèíà
const int height=12, // âûñîòà
//------------------------------------------------------------------
const color back_clr=clrDarkGray, // öâåò ôîíà
const color border_clr=clrYellow, // öâåò ãðàíèöû
const string font="Arial", // øðèôò
const int font_size=10, // ðàçìåð øðèôòà
const ENUM_ALIGN_MODE align=ALIGN_CENTER, // ñïîñîá âûðàâíèâàíèÿ
const bool read_only=false, // âîçìîæíîñòü ðåäàêòèðîâàòü
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // óãîë ãðàôèêà äëÿ ïðèâÿçêè
const color clr=clrBlack, // öâåò òåêñòà
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=false, // ñêðûò â ñïèñêå îáúåêòîâ
const long z_order=0, // ïðèîðèòåò íà íàæàòèå ìûøüþ
const long chart_ID=0, // ID ãðàôèêà
const int sub_window=0 // íîìåð ïîäîêíà
)
{
//--- ñáðîñèì çíà÷åíèå îøèáêè
ResetLastError();
if(ObjectFind(name)==-1)
{
//--- ñîçäàäèì ïîëå ââîäà
ObjectCreate(chart_ID,name,OBJ_EDIT,sub_window,0,0);
//--- óñòàíîâèì êîîðäèíàòû îáúåêòà
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);
//--- óñòàíîâèì òåêñò
// 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_ALIGN,align);
//--- óñòàíîâèì (true) èëè îòìåíèì (false) ðåæèì òîëüêî äëÿ ÷òåíèÿ
ObjectSetInteger(chart_ID,name,OBJPROP_READONLY,read_only);
//--- óñòàíîâèì óãîë ãðàôèêà, îòíîñèòåëüíî êîòîðîãî áóäóò îïðåäåëÿòüñÿ êîîðäèíàòû îáúåêòà
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
//--- óñòàíîâèì öâåò òåêñòà
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);
//--- âêëþ÷èì (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);
}
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- óñïåøíîå âûïîëíåíèå
return(true);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---