Согласен.
Интересует практическая реализация: шаблон кода, функция.
Вот, например для МТ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;
}
Кстати о птичках) Я свою билиотеку переписал с использвонием перетаскивания, теперь скроллбары работают как настоящие, и все остальные элементы управления тоже. Даже колесико работает. Да и работу с формами сделал по другому - не надо копировать шаблон формы. Осталось только демку сделать - накидать все элементы на форму. Но лень, все равно писать инструкцию еще придется.
Но теперь не могу выложить код одного элемента. Каждый из них является дочерним элементом родительского класса.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые форумчане!
Ветка для размещения кода графических элементов.
Разместите пожалуйста кто чем богат, для общего пользования.
Я в данный момент ищу код ползунка, но пока не могу найти.
Огромная просьба, не публиковать код, который ссылается на библиотеки.
Только в чистом виде (самодостаточный код), пожалуйста!