Прошу помочь разобраться

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
vebster005
457
vebster005  

Добрый день, ситуация такая, создана кнопка - картинка, к ней её координатам хочу привязать другие кнопки-картинки, но проблема в том что работает привязка(тоесть перемещаю объект и остальные объекты тоже передвигаются на тоже место) только с обычной кнопкой, а с кнопкой-картинкой нет
В примере ниже, кнопка Lots захватывается, а кнопка zrBuy нет, почему?


//+------------------------------------------------------------------+
bool ButtonCreate(const long              chart_ID=0,// ID графика
                  string                  name="Button",// имя кнопки
                  const int               sub_window=0,// номер подокна
                  const int               xx=0,                      // координата по оси X
                  const int               yy=0,                      // координата по оси Y
                  const int               width=50,                 // ширина кнопки
                  const int               height=18,                // высота кнопки
                  const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки
                  const string            text="Button",            // текст
                  const string            font="Tahoma",             // шрифт
                  const int               font_size=10,             // размер шрифта
                  const color             clr=clrBlack,             // цвет текста
                  const color             back_clr=C'215,240,255',  // цвет фона
                  const color             border_clr=clrNONE,       // цвет границы
                  const bool              state=false,              // нажата/отжата
                  const bool              back=false,               // на заднем плане
                  const bool              selection=false,          // выделить для перемещений
                  const bool              hidden=true,              // скрыт в списке объектов
                  const long              z_order=0,                // приоритет на нажатие мышью
                  const string            toltip="")
  {
   ResetLastError();
   name=StringConcatenate(prefix,name);
   if(ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);     //--- включим (true) или отключим (false) режим перемещения кнопки мышью
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);

      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);                //--- установим цвет текста
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);         //--- установим цвет фона
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);//--- установим угол графика, относительно которого будут определяться координаты точки
     }
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,xx);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,yy);
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);              //--- установим размер кнопки
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);                 //--- установим текст
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);                 //--- установим шрифт текста
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);       //--- установим размер шрифта
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);                //--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);            //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);           //--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetString(chart_ID,name,OBJPROP_TOOLTIP,toltip);                 //--- установим текст   
   return(true);
  }



//+------------------------------------------------------------------+
bool ButtonPicture(    const long              chart_ID=0,               // ID графика 
                       const string            name="BmpLabel",          // имя метки 
                       const int               sub_window=0,             // номер подокна 
                       const int               ix=0,                      // координата по оси X 
                       const int               iy=0,                      // координата по оси Y 
                       const string            file_on="",               // картинка в режиме On 
                       const string            file_off="",              // картинка в режиме Off 
                       const int               width=0,                  // X-координата области видимости 
                       const int               height=0,                 // Y-координата области видимости 
                       const int               x_offset=100,              // смещение области видимости по X 
                       const int               y_offset=100,              // смещение области видимости по Y 
                       const bool              state=false,              // нажата/отжата 
                       const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // угол графика для привязки 
                       const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // способ привязки  
                       const color             clr=clrRed,               // цвет рамки при выделении 
                       const ENUM_LINE_STYLE   style=STYLE_SOLID,        // стиль линии при выделении 
                       const int               point_width=1,            // размер точки перемещения 
                       const bool              back=false,               // на заднем плане 
                       const bool              selection=false,          // выделить для перемещений 
                       const bool              hidden=true,              // скрыт в списке объектов 
                       const long              z_order=0)                // приоритет на нажатие мышью 
  {
//--- сбросим значение ошибки 
   ResetLastError();
//--- создадим графическую метку 
   if(ObjectFind(ChartID(),"LOGO")==0)
      return false;

   if(ObjectCreate(chart_ID,name,OBJ_BITMAP_LABEL,sub_window,0,0))
     {

      //--- установим картинки для режимов On и Off 
      ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on);

      ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off);


      //--- установим координаты метки 
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,ix);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,iy);
      //--- установим область видимости изображения; если значения ширины или высоты 
      //--- больше значений ширины и высоты (соответственно) исходного изображения, то 
      //--- оно не рисуется; если значения ширины и высоты меньше размеров изображения, 
      //--- то рисуется та его часть, которая соответствует этим размерам 
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      //--- установим, какая часть изображения должна показываться в области видимости 
      //--- по умолчанию это левая верхняя область изображения; значения позволяют 
      //--- произвести сдвиг от этого угла и отобразить другую часть изображения 
      ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
      ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
      //--- установим, в каком сотоянии находится метка (нажатом или отжатом) 
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      //--- установим угол графика, относительно которого будут определяться координаты точки 
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      //--- установим способ привязки 
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      //--- установим цвет рамки при включенном режиме выделения объекта 
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      //--- установим стиль линии рамки при включенном режиме выделения объекта 
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      //--- установим размер точки привязки, с помощью которой можно перемещать объект 
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
      //--- отобразим на переднем (false) или заднем (true) плане 
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      //--- включим (true) или отключим (false) режим перемещения метки мышью 
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      //--- установим приоритет на получение события нажатия мыши на графике 
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      //--- успешное выполнение 
      return(true);
     }
   return false;
  }
vebster005
457
vebster005  
разобрался по своему)
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий