Author: Copyright 2015, MetaQuotes Software Corp.
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---