← К каталогу
Исходный код · ID 3519

draw.mqh

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Библиотека draw.mqh предоставляет два класса для создания и управления графическими объектами на графиках торговой платформы. Базовый класс CEAProtect_DrawMini реализует универсальные методы создания объектов, настройки их свойств, цветов, текста и удаления. Наследник CEAProtect_DrawPos расширяет функциональность поддержкой панельного позиционирования множества элементов.

Состав библиотеки

Классов: 2 · методов: 48 · конструкторов: 0 · деструкторов: 0 · отдельных функций: 0

Классы
Класс class CEAProtect_DrawMini

Базовый класс для создания и управления графическими объектами на графике

Класс class CEAProtect_DrawPos

Класс для позиционирования и управления элементами панели

Методы и конструкторы
Метод · CEAProtect_DrawMini void obj_hline(long chart_id,string name,int window)

Создание горизонтальной линии на графике

Метод · CEAProtect_DrawMini void NewObject(long chart_id,string name,ENUM_OBJECT obj_type,int window)

Создание графического объекта заданного типа

Метод · CEAProtect_DrawMini bool SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,long idata)

Установка целочисленного свойства графического объекта

Метод · CEAProtect_DrawMini bool SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int imodifiler,long idata)

Установка целочисленного свойства графического объекта с модификатором

Метод · CEAProtect_DrawMini long GetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int property_modifier)

Получение целочисленного свойства графического объекта

Метод · CEAProtect_DrawMini bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,double idata)

Установка дробного свойства графического объекта

Метод · CEAProtect_DrawMini bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int imodifiler,double idata)

Установка дробного свойства графического объекта с модификатором

Метод · CEAProtect_DrawMini bool SetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,string idata)

Установка строкового свойства графического объекта

Метод · CEAProtect_DrawMini bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler,string idata)

Установка строкового свойства графического объекта с модификатором

Метод · CEAProtect_DrawMini bool SetBack(long chart_id,string name,bool bBack)

Установка фонового свойства графического объекта

Метод · CEAProtect_DrawMini double GetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int property_modifier)

Получение дробного свойства графического объекта

Метод · CEAProtect_DrawMini string GetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler)

Получение строкового свойства графического объекта

Метод · CEAProtect_DrawMini void OnInit(string sNameDraw,bool bdelete)

Инициализация базового класса

Метод · CEAProtect_DrawMini void OnDeinit(long chart_id,const int reason)

Деинициализация и удаление объектов базового класса

Метод · CEAProtect_DrawMini bool SetSelectable(long chart_id,string name,bool bSelectable)

Установка возможности выбора графического объекта

Метод · CEAProtect_DrawMini bool SetSelected(long chart_id,string name,bool bSelected)

Установка состояния выбранности графического объекта

Метод · CEAProtect_DrawMini int Find(long chart_id,string name)

Поиск графического объекта на графике

Метод · CEAProtect_DrawMini void DrawLabel(long chart_id,string objname,string text,color cl,ENUM_BASE_CORNER icorner,int ix,int iy,int size,string font,uint text_style)

Создание и настройка графической метки

Метод · CEAProtect_DrawMini void DrawImage(string name, int x, int y,int iwidth,int iheight,int ix_offset,int iy_offset,string imageON,string imageOFF,ENUM_BASE_CORNER ecorner,ENUM_ANCHOR_POINT eanchor,bool bBack,bool bShow)

Создание и настройка графического изображения-кнопки

Метод · CEAProtect_DrawMini void DrawButton(long chart_id,string obj,ENUM_BASE_CORNER icorner,int ix,int iy)

Настройка расположения графической кнопки

Метод · CEAProtect_DrawMini void SetCorner(long chart_id,string objname,ENUM_BASE_CORNER icorner)

Установка угла привязки графического объекта

Метод · CEAProtect_DrawMini void SetColor(long chart_id,string objname,color cl)

Установка цвета графического объекта

Метод · CEAProtect_DrawMini void SetText(long chart_id,string objname,string text,color cl,string font,int size,uint text_style)

Установка текста, шрифта и стиля графического объекта

Метод · CEAProtect_DrawMini void SetTooltip(long chart_id,string objname,string text)

Установка подсказки графического объекта

Метод · CEAProtect_DrawMini void Delete(long chart_id,string objname)

Удаление графического объекта

Метод · CEAProtect_DrawMini void DeleteObj(long chart_id,string objname,ENUM_OBJECT objtype)

Удаление графического объекта определённого типа

Метод · CEAProtect_DrawMini void DeleteAll(long chart_id,string sfind)

Удаление всех объектов по шаблону имени

Метод · CEAProtect_DrawMini void DeleteAllObjects(long chart_id,string sfind)

Статическое удаление всех объектов по шаблону имени

Метод · CEAProtect_DrawMini string getObjName(string objname)

Формирование полного имени объекта с префиксом

Метод · CEAProtect_DrawMini bool ObjectIsDraw(long chart_id,string objname)

Проверка существования графического объекта на графике

Метод · CEAProtect_DrawPos void OnInit(string sNameDraw)

Инициализация класса позиционирования

Метод · CEAProtect_DrawPos void OnInit(string sname,int iwidth,int iheight,ENUM_BASE_CORNER ecorner)

Инициализация класса с заданными размерами панели и углом

Метод · CEAProtect_DrawPos void MovePosition(int ix,int iy)

Перемещение позиции панели и пересчёт координат элементов

Метод · CEAProtect_DrawPos void OnDeinit()

Деинициализация класса позиционирования

Метод · CEAProtect_DrawPos int Add(string sname,int ix,int iy,int ifontsize,color ccolor,ENUM_ANCHOR_POINT eanchor,string sFontName,uint text_style)

Добавление текстового элемента в панель

Метод · CEAProtect_DrawPos int AddButton(string sname,int ix,int iy,ENUM_ANCHOR_POINT eanchor,int iwidth)

Добавление кнопки в панель

Метод · CEAProtect_DrawPos void Text(string sname,string stext)

Установка текста элемента панели

Метод · CEAProtect_DrawPos int getX(string sname)

Получение X-координаты элемента панели

Метод · CEAProtect_DrawPos int getY(string sname)

Получение Y-координаты элемента панели

Метод · CEAProtect_DrawPos void setX(string sname,int inewx)

Установка X-координаты элемента панели

Метод · CEAProtect_DrawPos void setY(string sname,int inewy)

Установка Y-координаты элемента панели

Метод · CEAProtect_DrawPos void Color(string sname,color ccolor)

Установка цвета элемента панели

Метод · CEAProtect_DrawPos color Color(string sname)

Получение цвета элемента панели

Метод · CEAProtect_DrawPos void Update(int ix,int iy)

Обновление и перерисовка всех элементов панели

Метод · CEAProtect_DrawPos void Image(string sname, int ix, int iy,int iwidth,int iheight,int ix_offset,int iy_offset,string imageON,string imageOFF,ENUM_ANCHOR_POINT eanchor,bool bBack,bool bShow)

Настройка изображения в панели

Метод · CEAProtect_DrawPos void Image(string sname,bool bShow)

Управление видимостью изображения по таймфреймам

Метод · CEAProtect_DrawPos void Logo(string sname, int iwidth_panel, int iheight_panel,int iwidth_logo, int iheight_logo,string sResourceLogo,ENUM_BASE_CORNER ecorner,bool bShowPanel)

Отрисовка логотипа с привязкой к центру графика

Метод · CEAProtect_DrawPos void DrawStatus(string sname,string _sLicense,bool bbcheck)

Отрисовка индикатора статуса с изменением цвета

Получить полный код

Поиск по коду файла

#ifndef __EAPROTECT_DRAW
#define __EAPROTECT_DRAW sadhasgdhagshewyr23124

#include <EA_Protect\defines.mqh>

class CEAProtect_DrawMini
  {

public:
                     CEAProtect_DrawMini():IsTester(false) {}
   bool              bfirst;
   string            spfx; //префикc для меток
   bool              IsTester;

   void              obj_hline(long chart_id,string name,int window=0)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      if(ObjectFind(chart_id,obj)<0)
         ObjectCreate(chart_id,obj,OBJ_HLINE,window,0,0);
     }
   void              NewObject(long chart_id,string name,ENUM_OBJECT obj_type,int window=0)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      if(ObjectFind(chart_id,obj)<0)
         ObjectCreate(chart_id,obj,obj_type,window,0,0);
     }
   bool              SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,long idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetInteger(chart_id,obj,objprop,idata);
     }

   bool              SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int imodifiler,long idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetInteger(chart_id,obj,objprop,imodifiler,idata);
     }

   long              GetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int property_modifier=0)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectGetInteger(chart_id,obj,objprop,property_modifier);
     }

   bool              SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,double idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetDouble(chart_id,obj,objprop,idata);
     }
   bool              SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int imodifiler,double idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetDouble(chart_id,obj,objprop,imodifiler,idata);
     }

   bool              SetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,string idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetString(chart_id,obj,objprop,idata);
     }
   bool              SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler,string idata)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetString(chart_id,obj,objprop,imodifiler,idata);
     }

   bool              SetBack(long chart_id,string name,bool bBack)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetInteger(chart_id,obj,OBJPROP_BACK,bBack);
     }

   double              GetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int property_modifier=0)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectGetDouble(chart_id,obj,objprop,property_modifier);
     }

   string              GetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler=0)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectGetString(chart_id,obj,objprop,imodifiler);
     }

   virtual void      OnInit(string sNameDraw="",bool bdelete=true)
     {
      // код доступен только после оплаты
   }

   virtual void      OnDeinit(long chart_id=0,const int reason=0)
     {
      DeleteAll(chart_id);
     }

   bool              SetSelectable(long chart_id,string name,bool bSelectable=true)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,bSelectable);
     }

   bool              SetSelected(long chart_id,string name,bool bSelected=true)
     {
      string obj=StringFormat("%s_%s",spfx,name);
      return ObjectSetInteger(chart_id,name,OBJPROP_SELECTED,bSelected);
     }

   int               Find(long chart_id,string name)
     {
      string obj=getObjName(name);
      return (int)ObjectFind(chart_id,obj);
     }

   void              DrawLabel(long chart_id,string objname,string text,color cl=clrGreen,ENUM_BASE_CORNER icorner=CORNER_RIGHT_UPPER,int ix=0,int iy=0,int size=12,string font="Arial",uint text_style=FW_NORMAL)
     {
      if((IsTesting() && !IsVisualMode()) || IsOptimization())
         return;//не рисуем метку при оптимизации и тестах

      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)==-1)
         ObjectCreate(chart_id,obj,OBJ_LABEL,0,0,0);

      if(ObjectFind(chart_id,obj)!=-1)
        {

         SetCorner(chart_id,objname,icorner);

         if(text_style==FW_BOLD)
            font="Arial Black";

         SetText(chart_id,objname,text,cl,font,size,text_style);
         ObjectSetInteger(chart_id,obj,OBJPROP_XDISTANCE,ix);
         ObjectSetInteger(chart_id,obj,OBJPROP_YDISTANCE,iy);
         SetSelectable(chart_id,obj,false);
        }
     }

   void              DrawImage(string name, int x, int y,int iwidth,int iheight,int ix_offset,int iy_offset,string imageON,string imageOFF,ENUM_BASE_CORNER ecorner,ENUM_ANCHOR_POINT eanchor,bool bBack=false,bool bShow=true)
     {
      string obj=getObjName(name);

      if(ObjectFind(0,obj)<0)
        {
         bool bCreate=ObjectCreate(0,obj,OBJ_BITMAP_LABEL,0,0,0);

        }

      if(bShow)
         ObjectSetInteger(0,obj,OBJPROP_TIMEFRAMES,OBJ_ALL_PERIODS);
      else
         ObjectSetInteger(0,obj,OBJPROP_TIMEFRAMES,OBJ_NO_PERIODS);

      ObjectSetInteger(0,obj,OBJPROP_ANCHOR,eanchor);
      ObjectSetInteger(0,obj,OBJPROP_CORNER,ecorner);

      if(imageOFF=="")
         imageOFF=imageON;
      ObjectSetString(0,obj,OBJPROP_BMPFILE,0,imageON);
      ObjectSetString(0,obj,OBJPROP_BMPFILE,1,imageOFF);

      if(iwidth>0)
         ObjectSetInteger(0,obj,OBJPROP_XSIZE,iwidth);
      if(iheight>0)
         ObjectSetInteger(0,obj,OBJPROP_YSIZE,iheight);

      ObjectSetInteger(0,obj,OBJPROP_XOFFSET,ix_offset);
      ObjectSetInteger(0,obj,OBJPROP_YOFFSET,iy_offset);

      ObjectSetInteger(0,obj,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,obj,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0,obj,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,obj,OBJPROP_BACK,bBack);

     }

   void              DrawButton(long chart_id,string obj,ENUM_BASE_CORNER icorner=CORNER_RIGHT_UPPER,int ix=0,int iy=0)
     {
      if((IsTesting() && !IsVisualMode()) || IsOptimization())
         return;//не рисуем метку при оптимизации и тестах

      if(ObjectFind(chart_id,obj)!=-1)
        {

         ObjectSetInteger(chart_id,obj,OBJPROP_CORNER,icorner);
         ObjectSetInteger(chart_id,obj,OBJPROP_XDISTANCE,ix);
         ObjectSetInteger(chart_id,obj,OBJPROP_YDISTANCE,iy);
         ObjectSetInteger(chart_id,obj,OBJPROP_SELECTABLE,false);
        }
     }

   void              SetCorner(long chart_id,string objname,ENUM_BASE_CORNER icorner=0)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
         ObjectSetInteger(chart_id,obj,OBJPROP_CORNER,icorner);
     }

   void              SetColor(long chart_id,string objname,color cl)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
         ObjectSetInteger(chart_id,obj,OBJPROP_COLOR,cl);
     }

   void              SetText(long chart_id,string objname,string text,color cl,string font="Arial",int size=12,uint text_style=FW_NORMAL)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
        {
         ObjectSetString(chart_id,obj,OBJPROP_TEXT,text);
         ObjectSetString(chart_id,obj,OBJPROP_FONT,font);
         ObjectSetInteger(chart_id,obj,OBJPROP_FONTSIZE,size);
         ObjectSetInteger(chart_id,obj,OBJPROP_COLOR,cl);
         ObjectSetInteger(chart_id,obj,OBJPROP_STYLE,text_style);

        }
     }

   void              SetTooltip(long chart_id,string objname,string text)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
        {
         ObjectSetString(chart_id,obj,OBJPROP_TOOLTIP,text);
        }
     }

   void              Delete(long chart_id,string objname)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
        {
         ObjectDelete(chart_id,obj);
        }
     }

   virtual void      DeleteObj(long chart_id,string objname,ENUM_OBJECT objtype)
     {
      string obj=getObjName(objname);
      if(ObjectFind(chart_id,obj)!=-1)
        {
         if(ObjectGetInteger(chart_id,obj,OBJPROP_TYPE)==objtype)
            ObjectDelete(chart_id,obj);
        }
     }

   virtual void      DeleteAll(long chart_id=0,string sfind="")
     {
      string spattern=spfx;

      if(sfind!="")
         spattern=sfind;

      int i;
      int itotal=MathMin(INT_MAX,ObjectsTotal(chart_id,-1,-1));

      for(i=itotal-1; i>=0; i--)
        {
         string sobj=ObjectName(0,i,-1,-1);

         if(StringFind(sobj,spattern,0)>=0 || spattern=="")
            ObjectDelete(chart_id,sobj);

        }

     }

   static void       DeleteAllObjects(long chart_id=0,string sfind="")
     {
      string del=NULL;
      string spattern=sfind;

      int i;
      int itotal=MathMin(INT_MAX,ObjectsTotal(chart_id,-1,-1));

      for(i=itotal-1; i>=0; i--)
        {
         del=ObjectName(chart_id,i);
         if(del!="" && (StringFind(del,spattern,0)>=0 || spattern==""))
            ObjectDelete(chart_id,del);
        }
     }

   virtual string    getObjName(string objname)
     {
      string obj=StringFormat("%s_%s",spfx,objname);
      return obj;
     }

   bool              ObjectIsDraw(long chart_id,string objname)
     {
      string obj=StringFormat("%s_%s",spfx,objname);

      return (ObjectFind(chart_id,obj)!=-1);
     }

  };

class CEAProtect_DrawPos: public CEAProtect_DrawMini
  {
protected:
   int               x[];
   int               y[];

   int               fontsize[];
   string            name[]; //имя объекта для позиционирования текста
   string          

Показано первые 50% кода (символов: 14443)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 444,30₽ ≈ $17.65