class CEAProtect_DrawMini
Базовый класс для создания и управления графическими объектами на графике
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «draw.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Библиотека draw.mqh предоставляет два класса для создания и управления графическими объектами на графиках торговой платформы. Базовый класс CEAProtect_DrawMini реализует универсальные методы создания объектов, настройки их свойств, цветов, текста и удаления. Наследник CEAProtect_DrawPos расширяет функциональность поддержкой панельного позиционирования множества элементов.
Классов: 2 · методов: 48 · конструкторов: 0 · деструкторов: 0 · отдельных функций: 0
class CEAProtect_DrawMini
Базовый класс для создания и управления графическими объектами на графике
class CEAProtect_DrawPos
Класс для позиционирования и управления элементами панели
void obj_hline(long chart_id,string name,int window)
Создание горизонтальной линии на графике
void NewObject(long chart_id,string name,ENUM_OBJECT obj_type,int window)
Создание графического объекта заданного типа
bool SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,long idata)
Установка целочисленного свойства графического объекта
bool SetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int imodifiler,long idata)
Установка целочисленного свойства графического объекта с модификатором
long GetInteger(long chart_id,string name,ENUM_OBJECT_PROPERTY_INTEGER objprop,int property_modifier)
Получение целочисленного свойства графического объекта
bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,double idata)
Установка дробного свойства графического объекта
bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int imodifiler,double idata)
Установка дробного свойства графического объекта с модификатором
bool SetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,string idata)
Установка строкового свойства графического объекта
bool SetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler,string idata)
Установка строкового свойства графического объекта с модификатором
bool SetBack(long chart_id,string name,bool bBack)
Установка фонового свойства графического объекта
double GetDouble(long chart_id,string name,ENUM_OBJECT_PROPERTY_DOUBLE objprop,int property_modifier)
Получение дробного свойства графического объекта
string GetString(long chart_id,string name,ENUM_OBJECT_PROPERTY_STRING objprop,int imodifiler)
Получение строкового свойства графического объекта
void OnInit(string sNameDraw,bool bdelete)
Инициализация базового класса
void OnDeinit(long chart_id,const int reason)
Деинициализация и удаление объектов базового класса
bool SetSelectable(long chart_id,string name,bool bSelectable)
Установка возможности выбора графического объекта
bool SetSelected(long chart_id,string name,bool bSelected)
Установка состояния выбранности графического объекта
int Find(long chart_id,string name)
Поиск графического объекта на графике
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)
Создание и настройка графической метки
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)
Создание и настройка графического изображения-кнопки
void DrawButton(long chart_id,string obj,ENUM_BASE_CORNER icorner,int ix,int iy)
Настройка расположения графической кнопки
void SetCorner(long chart_id,string objname,ENUM_BASE_CORNER icorner)
Установка угла привязки графического объекта
void SetColor(long chart_id,string objname,color cl)
Установка цвета графического объекта
void SetText(long chart_id,string objname,string text,color cl,string font,int size,uint text_style)
Установка текста, шрифта и стиля графического объекта
void SetTooltip(long chart_id,string objname,string text)
Установка подсказки графического объекта
void Delete(long chart_id,string objname)
Удаление графического объекта
void DeleteObj(long chart_id,string objname,ENUM_OBJECT objtype)
Удаление графического объекта определённого типа
void DeleteAll(long chart_id,string sfind)
Удаление всех объектов по шаблону имени
void DeleteAllObjects(long chart_id,string sfind)
Статическое удаление всех объектов по шаблону имени
string getObjName(string objname)
Формирование полного имени объекта с префиксом
bool ObjectIsDraw(long chart_id,string objname)
Проверка существования графического объекта на графике
void OnInit(string sNameDraw)
Инициализация класса позиционирования
void OnInit(string sname,int iwidth,int iheight,ENUM_BASE_CORNER ecorner)
Инициализация класса с заданными размерами панели и углом
void MovePosition(int ix,int iy)
Перемещение позиции панели и пересчёт координат элементов
void OnDeinit()
Деинициализация класса позиционирования
int Add(string sname,int ix,int iy,int ifontsize,color ccolor,ENUM_ANCHOR_POINT eanchor,string sFontName,uint text_style)
Добавление текстового элемента в панель
int AddButton(string sname,int ix,int iy,ENUM_ANCHOR_POINT eanchor,int iwidth)
Добавление кнопки в панель
void Text(string sname,string stext)
Установка текста элемента панели
int getX(string sname)
Получение X-координаты элемента панели
int getY(string sname)
Получение Y-координаты элемента панели
void setX(string sname,int inewx)
Установка X-координаты элемента панели
void setY(string sname,int inewy)
Установка Y-координаты элемента панели
void Color(string sname,color ccolor)
Установка цвета элемента панели
color Color(string sname)
Получение цвета элемента панели
void Update(int ix,int iy)
Обновление и перерисовка всех элементов панели
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)
Настройка изображения в панели
void Image(string sname,bool bShow)
Управление видимостью изображения по таймфреймам
void Logo(string sname, int iwidth_panel, int iheight_panel,int iwidth_logo, int iheight_logo,string sResourceLogo,ENUM_BASE_CORNER ecorner,bool bShowPanel)
Отрисовка логотипа с привязкой к центру графика
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.