Графические элементы (чек-бокс, меню, поле ввода и т.д.) на MQL

 

Уважаемые форумчане!

Ветка для размещения кода графических элементов.

Разместите пожалуйста кто чем богат, для общего пользования.

Я в данный момент ищу код ползунка, но пока не могу найти.

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

Только в чистом виде (самодостаточный код), пожалуйста!

 
А чем справка не подходит?
 
Vladimir Karputov:
А чем справка не подходит?

Согласен.

Интересует практическая реализация: шаблон кода, функция.

Вот, например для МТ4 я делаю пока так (доработка приветствуется):

//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ТЕКСТА ---------------------------------+
void Prn_txt(string Name, int X, int Y, int Corner, string Font, int Font_Size, color CLR, string TXT,int Window)
{
   ObjectDelete(0,Name);
   ObjectCreate(0,Name,OBJ_LABEL,Window,0,0,0,0);
   ObjectSetInteger(0,Name,OBJPROP_XDISTANCE,X);
   ObjectSetInteger(0,Name,OBJPROP_YDISTANCE,Y);
   ObjectSetInteger(0,Name,OBJPROP_CORNER,Corner);
   ObjectSetString(0,Name,OBJPROP_TEXT,TXT);
   ObjectSetString(0,Name,OBJPROP_FONT,Font);
   ObjectSetInteger(0,Name,OBJPROP_FONTSIZE,Font_Size);
   ObjectSetInteger(0,Name,OBJPROP_COLOR,CLR);
   return;
}
//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ЛИНИИ ---------------------------------+
int Prn_trend(string Name, datetime aTime, double aPrice, datetime bTime, double bPrice, color CLR, int Width, int Window, bool Back)
{
   ObjectDelete(Name);
   ObjectCreate(Name,OBJ_TREND,Window,aTime,aPrice,bTime,bPrice);
   ObjectSet(Name,OBJPROP_COLOR,CLR);//clrTeal
   ObjectSet(Name,OBJPROP_STYLE,STYLE_DASH);
   ObjectSet(Name,OBJPROP_WIDTH,Width);
   ObjectSet(Name,OBJPROP_BACK,Back);
   ObjectSet(Name,OBJPROP_RAY,false);
   //---
   return(0);
}
//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ПРЯМОУГОЛЬНОЙ МЕТКИ ---------------------------------+
void Prn_rect_label(string Name, int X, int Y, int dX, int dY, int Corner, color CLR, color back_CLR, color border_CLR, int Window)
{
   ObjectDelete(0,Name);
   ObjectCreate(0,Name,OBJ_RECTANGLE_LABEL,Window,0,0);
   ObjectSetInteger(0,Name,OBJPROP_XDISTANCE,X);
   ObjectSetInteger(0,Name,OBJPROP_YDISTANCE,Y);
   ObjectSetInteger(0,Name,OBJPROP_XSIZE,dX);
   ObjectSetInteger(0,Name,OBJPROP_YSIZE,dY);
   ObjectSetInteger(0,Name,OBJPROP_BGCOLOR,back_CLR);
   ObjectSetInteger(0,Name,OBJPROP_BORDER_TYPE,BORDER_SUNKEN);
   ObjectSetInteger(0,Name,OBJPROP_BORDER_COLOR,border_CLR);
   ObjectSetInteger(0,Name,OBJPROP_CORNER,Corner);
   ObjectSetInteger(0,Name,OBJPROP_COLOR,CLR);
   ObjectSetInteger(0,Name,OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,Name,OBJPROP_WIDTH,1);
   ObjectSetInteger(0,Name,OBJPROP_BACK,false);
   return;
}
//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ЛЕВОЙ ЦЕНОВОЙ МЕТКИ ---------------------------------+
int Prn_l_price(string Name, datetime aTime, double aPrice, color CLR, int Width, int Window, bool Back)
{
   ObjectDelete(Name);
   ObjectCreate(Name,OBJ_ARROW_LEFT_PRICE,Window,aTime,aPrice);
   ObjectSet(Name,OBJPROP_COLOR,CLR);//clrTeal
   ObjectSet(Name,OBJPROP_STYLE,STYLE_DASH);
   ObjectSet(Name,OBJPROP_WIDTH,Width);
   ObjectSet(Name,OBJPROP_BACK,Back);
   ObjectSet(Name,OBJPROP_RAY,true);
   //---
   return(0);
}
//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ПРАВОЙ ЦЕНОВОЙ МЕТКИ ---------------------------------+
int Prn_r_price(string Name, datetime aTime, double aPrice, color CLR, int Width, int Window, bool Back)
{
   ObjectDelete(Name);
   ObjectCreate(Name,OBJ_ARROW_RIGHT_PRICE,Window,aTime,aPrice);
   ObjectSet(Name,OBJPROP_COLOR,CLR);//clrTeal
   ObjectSet(Name,OBJPROP_STYLE,STYLE_DASH);
   ObjectSet(Name,OBJPROP_WIDTH,Width);
   ObjectSet(Name,OBJPROP_BACK,Back);
   ObjectSet(Name,OBJPROP_RAY,true);
   //---
   return(0);
}
//+-------------- ФУНКЦИЯ ОТОБРАЖЕНИЯ ПОЛЯ ВВОДА ---------------------------------+
void Prn_edit(string Name, int X, int Y, int dX, int dY, int Corner, string Font, int Font_Size, color CLR, color back_CLR, color border_CLR, string TXT,int Window)
{
   ObjectCreate(0,Name,OBJ_EDIT,Window,0,0);
   ObjectSetInteger(0,Name,OBJPROP_XDISTANCE,X);
   ObjectSetInteger(0,Name,OBJPROP_YDISTANCE,Y);
   ObjectSetInteger(0,Name,OBJPROP_XSIZE,dX);
   ObjectSetInteger(0,Name,OBJPROP_YSIZE,dY);
   ObjectSetString(0,Name,OBJPROP_TEXT,TXT);
   ObjectSetString(0,Name,OBJPROP_FONT,Font);
   ObjectSetInteger(0,Name,OBJPROP_FONTSIZE,Font_Size);
   ObjectSetInteger(0,Name,OBJPROP_ALIGN,ALIGN_RIGHT);
////--- установим (true) или отменим (false) режим только для чтения
//   ObjectSetInteger(0,name,OBJPROP_READONLY,read_only);
   ObjectSetInteger(0,Name,OBJPROP_CORNER,Corner);
   ObjectSetInteger(0,Name,OBJPROP_COLOR,CLR);
   ObjectSetInteger(0,Name,OBJPROP_BGCOLOR,back_CLR);
   ObjectSetInteger(0,Name,OBJPROP_BORDER_COLOR,border_CLR);
   ObjectSetInteger(0,Name,OBJPROP_BACK,false);
   return;
}

 

Кстати о птичках) Я свою билиотеку переписал с использвонием перетаскивания, теперь скроллбары работают как настоящие, и все остальные элементы управления тоже. Даже колесико работает. Да и работу с формами сделал по другому - не надо копировать шаблон формы. Осталось только демку сделать - накидать все элементы на форму. Но лень, все равно писать инструкцию еще придется.

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

 
Dmitry Fedoseev:


Кстати, вот хороший вариант для любых элементов управления. Правда здесь используется библиотека пользовательская.