Создание нескольких объектов одной функцией.

 

Доброго времени суток Уважаемые трейдеры программисты! Сегодня я хотел создать несколько (и даже множество) графических объектов с помощью одной функции, указывая разные параметры. Оказалось что так нельзя. При вызове следующей функции с другими параметрами, предыдущий объект исчезает. Что делать? Мне необходимо создать несколько объектов, а писать много кода для каждого объекта не хочется..

 

В интернете поискал, но подробного лтвета не нашел. Ниже кусок кода:


Color_Button("pRed",620,50,51,41,"Red",623,53,45,35,Red);

Color_Button("pBlue",700,50,51,41,"Blue",703,53,45,35,Blue);
 
Можно так и никаких проблем. Новый объект с новым именем. Наверно имя не меняете, потому старый и исчезает.
 

Данная функция создает кнопку. А мне нужно их штук 30.

Но после вызова следующей функции Color_Button("pBlue",700,50,51,41,"Blue",703,53,45,35,Blue);  - объект "pRed" исчезает! (((

 
Yuriy Vins:

хотел создать несколько (и даже множество) графических объектов с помощью одной функции, указывая разные параметры. При вызове следующей функции с другими параметрами, предыдущий объект исчезает.

Имя объекта надо менять и время создания.

У объектов какие будут данные ?
Линия трендовая или горизонтальная time1 price1 и time2 price2 ?
или текстовая метка, или вертикальная линия ?

 
Dmitry Fedoseev:
Можно так и никаких проблем. Новый объект с новым именем. Наверно имя не меняете, потому старый и исчезает.

Да нет, я же имя поменял. Был pRed а  стал pBlue . По идее должно было работать..

 
Yuriy Vins:

Да нет, я же имя поменял. Был pRed а  стал pBlue . По идее должно было работать..

Это кнопки. Тип данных void

 
Yuriy Vins:

Это кнопки. Тип данных void

Скрин для понимания будет?

 
FXwin:

Скрин для понимания будет?

//+------------------------------------------------------------------+
//|    Функция создания кнопок для выбора цвета                      |
//+------------------------------------------------------------------+ 
   void Color_Button(const string P_But,const int xp_but,const int yp_but,const int xp_size,const int yp_size,
                  const string C_But,const int xc_but,const int yc_but,const int xc_size,const int yc_size,
                  const color col_or)                                  //Сюда входит 11 параметров.
   {
   
    //Создаем псевдокнопку//
   ObjectCreate(0,"P_But",OBJ_BUTTON,0,0,0); 
//--- установим координаты кнопки
   ObjectSetInteger(0,"P_But",OBJPROP_XDISTANCE,xp_but);
   ObjectSetInteger(0,"P_But",OBJPROP_YDISTANCE,yp_but);
//--- установим размер кнопки
   ObjectSetInteger(0,"P_But",OBJPROP_XSIZE,xp_size);
   ObjectSetInteger(0,"P_But",OBJPROP_YSIZE,yp_size);
//--- установим цвет фона
   ObjectSetInteger(0,"P_But",OBJPROP_BGCOLOR,Color);
//--- установим цвет границы
   ObjectSetInteger(0,"P_But",OBJPROP_BORDER_COLOR,ChartBackColorGet(0));
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(0,"P_But",OBJPROP_BACK,false);
//--------------------- Кнопка Цвета. -----------------------------------------------------//
//---Создаем кнопку. А внизу ее настройки
   ObjectCreate(0,"C_But",OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
   ObjectSetInteger(0,"C_But",OBJPROP_XDISTANCE,xc_but);
   ObjectSetInteger(0,"C_But",OBJPROP_YDISTANCE,yc_but);
//--- установим размер кнопки
   ObjectSetInteger(0,"C_But",OBJPROP_XSIZE,xc_size);
   ObjectSetInteger(0,"C_But",OBJPROP_YSIZE,yc_size);
//--- установим цвет фона
   ObjectSetInteger(0,"C_But",OBJPROP_BGCOLOR,col_or);
//--- установим цвет границы
   ObjectSetInteger(0,"C_But",OBJPROP_BORDER_COLOR,ChartBackColorGet(0));
//--- установим текст
   ObjectSetString(0,"C_But",OBJPROP_TEXT," ");     
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(0,"C_But",OBJPROP_BACK,false);
   }
//+------------------------------------------------------------------+
 
Ах да. Забыл сказать. Функция создает сразу два объекта. Две кнопки. Одна внутри другой. Может из за этого проблемы ? Хотя не должно..
 
Yuriy Vins:
Функция создает сразу два объекта. Две кнопки. Одна внутри другой. Может из за этого проблемы ? Хотя не должно..

Покажите как прописано в старте Color_Button(

Причина обращения: