Errores, fallos, preguntas - página 1376

 
Vladimir Pastushak:

Ajustamos todos los parámetros y se guardan todos los parámetros excepto el tipo de grasa...

El tamaño de los colores se guarda después de la recarga, sólo se borra el tipo de grasa...

Sí, es correcto. OBJPROP_TOOLTIP se borra cuando se cierra el terminal. Pero el objeto en sí permanece. Cuando se intenta crear un objeto de este tipo directamente, no se puede crear y, por tanto, no se pueden modificar sus parámetros y OBJPROP_TOOLTIP en particular.
 
Vladimir Pastushak:

Ajustamos todos los parámetros y se guardan todos los parámetros excepto el tipo de grasa...

El tamaño del color se guarda después de la recarga, sólo el tipo de Tol se borra...

Haz lo mismo y olvídalo como un mal sueño ;)

//+------------------------------------------------------------------+
//| Создает кнопку                                                   |
//+------------------------------------------------------------------+
   void CGraphClass::ButtonCreate(const long chart_id=0,               // ID графика
                     const string            name="Button",            // имя кнопки
                     const int               sub_window=0,             // номер подокна
                     const int               x=0,                      // координата по оси X
                     const int               y=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="Arial",             // шрифт
                     const int               font_size=10,             // размер шрифта
                     const color             clr=clrBlack,             // цвет текста
                     const color             back_clr=C'236,233,216',  // цвет фона
                     const color             border_clr=clrNONE,       // цвет границы
                     const string            tooltip="\n",             // описание объекта
                     const bool              state=false,              // нажата/отжата
                     const bool              back=false,               // на заднем плане
                     const bool              selection=false,          // выделить для перемещений
                     const bool              hidden=true,              // скрыт в списке объектов
                     const long              z_order=0)                // приоритет на нажатие мышью
     {
      if(ObjectFind(name)<0) ObjectCreate(chart_id,name,OBJ_BUTTON,sub_window,0,0);
      ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_id,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_id,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_id,name,OBJPROP_CORNER,corner);
      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_COLOR,clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_id,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_id,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_id,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_id,name,OBJPROP_HIDDEN,hidden);
      ObjectSetString(chart_id,name,OBJPROP_TOOLTIP,tooltip);
      ObjectSetInteger(chart_id,name,OBJPROP_ZORDER,z_order);
     }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Haz lo mismo y olvídalo como un mal sueño ;)

Con este enfoque, las propiedades del botón cambiarán en cada tic...
 
Vladimir Pastushak:
Con este enfoque, las propiedades del botón cambiarán en cada tic...
Y tienes que crear el botón una vez - en OnInit.
 
Vladimir Pastushak:
Con este enfoque, las propiedades del botón cambiarán en cada tic...

Eso es extraño. En mi caso, no cambian en cada tick, sino que permanecen como necesito y los establezco yo, y siempre creo el botón cuando lo necesito, no en OnInit(), como aconseja Vladimir.

Siempre envío al botón el tipo de propiedad que quiero cuando lo necesito.

 
Karputov Vladimir:
Crear un botón una vez - en OnInit.
¿Y si el número de botones es dinámico?
 
Vladimir Pastushak:
¿Y si el número de botones es dinámico?

Crea cuando lo necesites: siempre será cuando tú quieras. No hace falta que inventes problemas: compruébalos. De todas formas, podrás cambiar los tooltips sobre la marcha, dependiendo de la situación. Pero el botón no se recreará, sino que sus parámetros cambiarán según los nuevos parámetros pasados a la función.

ZS. Puedo grabarte un vídeo de cómo cambian las descripciones (tooltips) de un objeto en función del estado de otros objetos.

 
Artyom Trishkin:

Crea cuando lo necesites: siempre será cuando tú quieras. No hace falta que inventes problemas: compruébalos. De todas formas, podrás cambiar los tooltips sobre la marcha, dependiendo de la situación. Pero el botón no se creará de nuevo, sino que sus parámetros cambiarán de acuerdo con los nuevos parámetros pasados a la función.

SZZ. Puedo grabarte un vídeo de cómo cambian las descripciones (tooltips) de un objeto en función del estado de otros objetos.

Estaría encantado de verlo.
 
Vladimir Pastushak:
Me encantaría verlo.
Bueno, esta noche no, es tarde. Es la hora de dormir.
 
Vladimir Pastushak:

Cuando creo una interfaz, con botones, al crear un tooltip. Cuando reinicio el terminal, el tooltip se elimina y tengo que escribirlo de nuevo...

Aquí hay un código simple que crea un botón con un tooltip y después de reiniciar el tooltip desaparece, pruébalo...

Así es como funciona.

   if(ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      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_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
     }
   ObjectSetString(chart_ID,name,OBJPROP_TOOLTIP,"ROP_TOOLTIP");

Esto ya se le ha señalado en el Servicio de Atención al Cliente...