Erros, bugs, perguntas - página 1376

 
Vladimir Pastushak:

Definimos todos os parâmetros e todos os parâmetros são guardados, excepto o tipo de gordura.

O tamanho das cores guardadas após recarregar apenas o tipo de gordura é eliminado.

Sim, correcto. OBJPROP_TOOLTIP é apagado quando o terminal é fechado. Mas o objecto em si permanece. Quando se tenta criar tal objecto directamente, não se pode criá-lo e, portanto, não se pode alterar os seus parâmetros e OBJPROP_TOOLTIP em particular.
 
Vladimir Pastushak:

Definimos todos os parâmetros e todos os parâmetros são guardados excepto o tipo de gordura...

Tamanho da cor tudo é guardado depois de recarregar apenas o tipo Tol é apagado...

Faça o mesmo e esqueça-o como um pesadelo ;)

//+------------------------------------------------------------------+
//| Создает кнопку                                                   |
//+------------------------------------------------------------------+
   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:

Faça o mesmo e esqueça-o como um pesadelo ;)

Com esta abordagem, as propriedades do botão mudarão em cada tic...
 
Vladimir Pastushak:
Com esta abordagem, as propriedades do botão mudarão em cada tic...
E tem de criar o botão uma vez - no OnInit.
 
Vladimir Pastushak:
Com esta abordagem, as propriedades do botão mudarão em cada tic...

Isso é estranho. No meu caso, eles não mudam em cada tic, mas permanecem como eu preciso e definido por mim, e crio sempre botões quando preciso, não no OnInit(), como aconselha Vladimir.

Envio sempre o botão do tipo de propriedade que quero quando preciso.

 
Karputov Vladimir:
Criar um botão uma vez - no OnInit.
E se o número de botões for dinâmico?
 
Vladimir Pastushak:
E se o número de botões for dinâmico?

Criar quando é preciso - será sempre quando se quer que seja. Não precisa de inventar problemas - verifique-os. Mesmo assim, será capaz de mudar as pontas dos instrumentos na mosca, dependendo da situação. Mas o botão não será recriado, mas os seus parâmetros mudarão de acordo com os novos parâmetros passados para a função.

ZS. Posso gravar um vídeo de como as descrições (pontas de ferramentas) de um objecto mudam, dependendo do estado de outros objectos.

 
Artyom Trishkin:

Criar quando é preciso - será sempre quando se quer que seja. Não precisa de inventar problemas - verifique-os. Mesmo assim, será capaz de mudar as pontas dos instrumentos na mosca, dependendo da situação. Mas o botão não será criado de novo, mas os seus parâmetros serão alterados de acordo com os novos parâmetros passados para a função.

SZZ. Posso gravar um vídeo de como as descrições (pontas de ferramentas) de um objecto mudam, dependendo do estado de outros objectos.

Terei todo o gosto em observá-lo.
 
Vladimir Pastushak:
Adoraria vê-lo.
Bem, não esta noite - já é tarde. Está na hora de dormir.
 
Vladimir Pastushak:

Crio uma interface com botões, quando a crio ponho uma dica de ferramenta. Quando reinicio o terminal, a dica de ferramenta é removida e tenho de a escrever novamente...

Aqui está um código simples que cria um botão com uma ponta de ferramenta e depois de reiniciar a ponta de ferramenta desaparece, experimente-o...

Aqui está 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");

Isto já lhe foi assinalado no Service Desk...